pandas中apply()函数的使用

Pandas中apply()使用(仅用于记录方便以后查看)

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.Series.apply.html

pandas.Series.apply 
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, args=(), **kwds)

该函数最有用的是第一个参数,这个参数是函数,相当于C/C++的函数指针。
这个函数需要自己实现,函数的传入参数根据axis来定,比如axis = 1,就会把一行数据作为Series的数据结构传入给自己实现的函数中,我们在函数中实现对Series不同属性之间的计算,返回一个结果,则apply函数会自动遍历每一行DataFrame的数据,最后将所有结果组合成一个Series数据结构并返回。
原文链接:https://blog.csdn.net/qq_19528953/article/details/79348929
对 Series 的值调用函数。

可以是 ufunc(适用于整个系列的 NumPy 函数)或仅适用于单个值的 Python 函数。

参数
func函数
要应用的 Python 函数或 NumPy ufunc。

convert_dtype bool,默认为 True
尝试为元素函数结果找到更好的 dtype。如果为 False,则保留为 dtype=object。请注意,dtype 始终保留用于某些扩展数组 dtype,例如 Categorical。

args:tuple
在系列值之后传递给 func 的位置参数。

**kwargs
传递给 func 的其他关键字参数。

reyurn:
seties或DataFrame
如果 func 返回一个 Series 对象,则结果将是一个 DataFrame。

-----------------------
其他函数
Series.map
用于元素操作。
Series.agg
仅执行聚合类型操作。
Series.transform
只执行转换类型操作。

针对series数据:

df['Extra'] = df.Nationality(字段名).apply(lambda n, extra : extra if n == '汉' else 0, args=(5,))

针对DataFrame数据:

下面的示例对 x 和 y 列进行平方运算:

df.apply(lambda x : np.square(x) if x.name in ['x', 'y'] else x)
    x   y  z
a   1   4  3
b  16  25  6
c  49  64  9

下面的示例对第一行 (a 标签所在行)进行平方运算:

df.apply(lambda x : np.square(x) if x.name == 'a' else x, axis=1)
默认情况下 axis=0 表示按列,axis=1 表示按行。

原文链接:https://blog.csdn.net/stone0823/article/details/100008619

备注:apply()可用于两列日期的计算

上一篇:Numpy-数组


下一篇:axis参数在pandas中的应用