想用pandas根据不同关键字筛选出数据并分别导出到不同sheet,因为涉及的关键字很多,我的办法是每一个关键字定义一个变量一个个操作,有没有更高效的方法?
df = data[data[col_name].str.contains(a1)]
df.to_excel(write,sheet_name=a1,index=False )
df = data[data[col_name].str.contains(a2)]
df.to_excel(write,sheet_name=a2,index=False )
df = data[data[col_name].str.contains(a3)]
df.to_excel(write,sheet_name=a3,index=False )
df = data[data[col_name].str.contains(a4)]
df.to_excel(write,sheet_name=a4,index=False )
df = data[data[col_name].str.contains(a5)]
df.to_excel(write,sheet_name=a4,index=False )
write.save()
你是要筛选出一个表格还是多个表格啊,看你的格式只是包含字符串不同,完全可以写成一个,来个循环就行
str_list=['a1','a2','a3','a4','a5']
for i in str_list:
df = data[data[col_name].str.contains(i)]
df.to_excel(write,sheet_name=i,index=False )
示例代码如下:
import pandas as pd
data = {'groups': ['GroupA','GroupA','GroupA','GroupB','GroupB','GroupC'],
'name':['John','Bob','Sue','Sandy','Bob','John'],
'height':[176,164,184,175,165,176]}
df = pd.DataFrame(data)
# 使用groupby函数按'groups'字段筛选df中的数据
grouped = df.groupby(['groups'])
# 使用ExcelWriter函数按关键字分别导出数据
with pd.ExcelWriter('groups_output.xlsx') as writer:
for group_name, data in grouped:
data.to_excel(writer, sheet_name=group_name)
writer.save()