如何基于一列导出多个EXCEL
我试图根据一列的值导出多个EXCEL。例如:如何基于一列导出多个EXCEL,excel,pandas,export,Excel,Pandas,Export,我试图根据一列的值导出多个EXCEL。例如: import pandas as pd df = pd.DataFrame({'state':['PA','PA','TX','TX'],'county':['Centre','Berks','Austin','Taylor'],'a':[4,3,2,1],'b':[3,4,5,6]}) df 如何根据列状态的属性将此数据帧导出到多个EXCEL。例如,仅导出state=PA的单独excel和state=TX的另一个excel。谢谢。状态列中n个元素
import pandas as pd
df = pd.DataFrame({'state':['PA','PA','TX','TX'],'county':['Centre','Berks','Austin','Taylor'],'a':[4,3,2,1],'b':[3,4,5,6]})
df
如何根据列状态的属性将此数据帧导出到多个EXCEL。例如,仅导出state=PA的单独excel和state=TX的另一个excel。谢谢。状态列中n个元素的解决方案
1.假设这是您的数据帧
2.这个想法:
如您所见,返回序列中存在的不同且不可重复的元素
三,。For循环
您可以使用for循环根据unique返回的状态元素过滤数据帧:
for state in df['state'].unique():
print(df[df['state'].eq(state)])
print('-'*20)
4发送到excel
关于使用,以及操作员~
我在你关于使用~的评论中的建议是因为只有两个州
以下表达式是等效的:
~df.eq(a)
df.ne(a)
是否要根据状态选择要导出到每个excell的行?df[df['state'].eq'PA']。到_excel'excel1.xlsx'df[~df['state'].eq'PA']。到_excel'excel2.xlsx'是的,它可以工作。以下两个问题:一,。为什么要添加~符号,我尝试了使用和不使用~,两者都有效。2.假设我在列状态上有一个很长的列表,如何编写一个循环来导出所有与值对应的excel。例如,对于state=TXplease的TX.xlsx,请参见我的答案
df['state'].unique()
array(['PA', 'TX', 'RX'], dtype=object)
for state in df['state'].unique():
print(df[df['state'].eq(state)])
print('-'*20)
state county a b
0 PA Centre 4 3
1 PA Berks 3 4
--------------------
state county a b
2 TX Austin 2 5
3 TX Taylor 1 6
--------------------
state county a b
4 RX Mike 0 7
for state in df['state'].unique():
df[df['state'].eq(state)].to_excel(state+'.xlsx')
~df.eq(a)
df.ne(a)