Pandas的apply()函数允许用户传递一个函数并将其应用于Pandas系列的每个单个值。此功能提高了Pandas库的功能, 因为它有助于根据所需条件隔离数据。这样它就可以有效地用于数据科学和机器学习。
要传递给函数的对象是Series对象, 其索引是DataFrame的索引(即axis = 0)或DataFrame的列(即axis = 1)。默认情况下, result_type = None, 并且最终返回类型是从应用函数的返回类型推断出来的。否则, 它取决于result_type参数。
句法:
DataFrame.apply(func, axis=0, broadcast=None, raw=False, reduce=None, result_type=None, args=(), **kwds)
参数:
func:此功能将应用于每个列或行。
轴:{0或’index’, 1或’columns’}, 默认值0
它是应用该功能的轴。它可以有两个值:
- 0或’index’:将函数应用于每个列。
- 1或’columns’:将函数应用于每一行。
广播:这是一个可选参数, 返回布尔值。
仅与聚合功能有关:
False或None:它返回一个Series, 其长度将是根据axis参数的索引长度或列数。
正确:结果将广播到帧的原始形状;原始索引和列将保留。
raw:布尔值, 默认值为False
False:将每一行或每一列作为Series传递给该函数。
True:传递的函数将接收ndarray对象。如果你要应用NumPy缩减功能, 它将获得更好的性能。
reduce:布尔值或无, 默认值无
它尝试应用减少程序。如果DataFrame为空, 则应用将使用reduce来确定结果应为Series还是DataFrame。
默认情况下, reduce = None, 将通过在空的Series上调用func来猜测应用的返回值(注意:在猜测时, func引发的所有异常都将被忽略)。如果reduce = True, 将始终返回Series, 而reduce = False, 将始终返回DataFrame。
result_type:{‘expand’, ‘reduce’, ‘broadcast’, None}, 默认值None
这些仅在axis = 1(列)时起作用:
‘expand’:它定义了类似列表的结果, 这些结果将变成列。
‘reduce’:与’expand’相反。如果可能, 它返回一个Series而不是扩展类似列表的结果。
“广播”:它将结果广播到DataFrame的原始形状, 原始索引和列中。
默认值None取决于所应用函数的返回值, 即作为一系列结果返回的类似列表的结果。
如果apply返回一个Series, 它将扩展到列。
args:这是一个位置参数, 除了数组/系列外, 还将传递给func。
** kwds:这是一个可选的关键字参数, 用于将关键字参数传递给func。
返回值:
它返回沿DataFrame的给定轴应用func的结果。
例:
info = pd.DataFrame([[2, 7]] * 4, columns=['P', 'Q'])
info.apply(np.sqrt)
info.apply(np.sum, axis=0)
info.apply(np.sum, axis=1)
info.apply(lambda x: [1, 2], axis=1)
info.apply(lambda x: [1, 2], axis=1, result_type='expand')
info.apply(lambda x: pd.Series([1, 2], index=['foo', 'bar']), axis=1)
info.apply(lambda x: [1, 2], axis=1, result_type='broadcast')
info
输出
A B
0 2 7
1 2 7
2 2 7
3 2 7
来源:
https://www.srcmini02.com/30915.html