1、读入电子表格,获取dataframe数据
import pandas as pd
path='D:/test.xlsx'
df = pd.read_excel(path,dtype='str')
2、定义自己的处理函数,稍后由lambda调用。要回写df,注意一定要有返回值。
#定一个参数用于演示
arg1=1
#定义函数
def myneed(df,arg1):
df['类型']=arg1+1
df['批次']=arg1+2
return df
3、对dataframe调用apply()方法,即逐行遍历(axis=1))。
lambda x中x即df.apply的df,将df传入myneed函数(还可传入arg1等其它参数)进行运算
#本例,将完整的df传入函数:(lambda内,x即为df)
df=df.apply(lambda x:myneed(x,arg1),axis=1)
#扩展,你也可以将df['编号']传入函数:(lambda内,x即为df)
df=df.apply(lambda x:myneed(x['编号'],arg1),axis=1)
#扩展,你可以对df['编号']进行apply操作:(lambda内,x即为df['编号'])
df['序号']=df['编号'].apply(lambda x:myneed(x,arg1),axis=1)
4、总结:
一:采用apply()方式对dataframe行遍历操作效率较高。3万行电子表格数据的读入、计算、写入电子表格文件,全程仅需要30秒即可完成。
二、但需要结合lambda、自定义函数等进行操纵,对初学者不友好。
三、作为初学者,写此博文希望可以帮助到跟我一样的人。如果不足请留言指正。