在Python中如果想要对数据使用函数,可以借助apply(),applymap(),map() 来应用函数,括号里面可以是直接函数式,或者自定义函数(def)或者匿名函数(lambad)import pandas as pdimport numpy as npfrom pandas import DataFramefrom pandas import Seriesdf1= DataFrame({ "sales1":[-1,2,3], "sales2":[3,-5,7], })df1
sales1 sales2
_____________________
0 -1 3
1 2 -5
2 3 7
1、当我们要对数据框(DataFrame)的数据进行按行或按列操作时用apply()df1.apply(lambda x :x.max()-x.min(),axis=1)#axis=1,表示按行对数据进行操作#从下面的结果可以看出,我们使用了apply函数之后,系统自动按行找最大值和最小值计算,每一行输出一个值0 41 72 4dtype: int64df1.apply(lambda x :x.max()-x.min(),axis=0)#默认参数axis=0,表示按列对数据进行操作#从下面的结果可以看出,我们使用了apply函数之后,系统自动按列找最大值和最小值计算,每一列输出一个值sales1 4sales2 12 dtype: int64
2、当我们要对数据框(DataFrame)的每一个数据进行操作时用applymap(),返回结果是DataFrame格式df1.applymap(lambda x : 1 if x>0 else 0)#从下面的结果可以看出,我们使用了applymap函数之后,#系统自动对每一个数据进行判断,判断之后输出结果
sales1 sales2
_____________________
0 0 1
1 1 0
2 1 1
3、当我们要对Series的每一个数据进行操作时用map()df1.sales1.map(lambda x : 1 if x>0 else 0)#df1.sales1就是一个Series0 01 12 1Name: sales1, dtype: int64 4、总结:要对数据进行应用函数时,先看数据结构是DataFrame还是Series,Seriesj结构直接用map(),DataFrame结构的话再看是要按行还是按列进行操作来选择对应的函数即可~
————————————————原文链接:https://blog.csdn.net/qq_42665335/article/details/81213175