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()可用于两列日期的计算