如何基于一列导出多个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个元素

我试图根据一列的值导出多个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个元素的解决方案

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)