pandas map(),apply(),applymap() 函数使用与区别
1.apply()函数的使用
可对df框架中的每一行(axis=1)或每一列(axis=0)进行操作
完整参数
DataFrame.apply(func, axis=0, broadcast=False, raw=False, reduce=None, result_type=None, args=(), **kwds)
func:对数据所应用的函数,
axis:选择处理数据行列的轴,axis=0表示将每列数据传入函数处理,axis=1表示将每行数据传入函数处理
broadcast:
raw:
reduce:
本例数据表格如下
a | b |
---|---|
1 | 4 |
2 | 5 |
3 | 6 |
示例数据
>>> df
a b
0 1 4
1 2 5
2 3 6
对每一行数据进行操作,以求和为例
>>> df.apply(sum, axis=1)
0 5
1 7
2 9
dtype: int64
对每一列数据进行操作,以求和为例
>>> df.apply(sum, axis=0)
a 6
b 15
dtype: int64
ps.
1.DataFrame在使用apply()后数据类型变为Series
2.apply()中传入函数的数据类型为Series,在使用lambda函数时,可使用Series实例的方法 如:
1.取每行的最大值
>>> df.apply(lambda x: x.max(), axis=1)
0 4
1 5
2 6
dtype: int64
2.获取每一行数据形成的Series的索引
>>> df.apply(lambda x: x.index, axis=1)
0 Index(['a', 'b'], dtype='object')
1 Index(['a', 'b'], dtype='object')
2 Index(['a', 'b'], dtype='object')
dtype: object