Python 使用df.to_excel将pandas数据帧子集保存到xlsx

Python 使用df.to_excel将pandas数据帧子集保存到xlsx,python,pandas,dataframe,for-loop,xlsxwriter,Python,Pandas,Dataframe,For Loop,Xlsxwriter,我有一个csv,我想分解成单独的excel文件。当我尝试下面的方法时,它会创建单个文件,但不会进行过滤。我还是python新手,我猜我在for循环中缺少了一行数据帧切片。谢谢你的帮助 将熊猫作为pd导入 #拉入csv data=pd.read\u csv('test.csv',encoding='UTF-8') df=pd.DataFrame(数据) df.fillna(“,inplace=True) #按经销商分组 dfs=dict(元组(df.groupby('Dealer')) #对于按经

我有一个csv,我想分解成单独的excel文件。当我尝试下面的方法时,它会创建单个文件,但不会进行过滤。我还是python新手,我猜我在for循环中缺少了一行数据帧切片。谢谢你的帮助

将熊猫作为pd导入
#拉入csv
data=pd.read\u csv('test.csv',encoding='UTF-8')
df=pd.DataFrame(数据)
df.fillna(“,inplace=True)
#按经销商分组
dfs=dict(元组(df.groupby('Dealer'))
#对于按经销商分组的回路
对于dfs中的名称:
writer=pd.ExcelWriter(str(name)+'.xlsx',engine='xlsxwriter')
df.to_excel(writer,index=False,header=True,sheet\u name='Sheet1')
writer.save()
打印(名称+“已创建文件”。)

dfs
是一个字典时,您需要使用
.items()

如果您在执行操作时对其进行迭代,则只会返回字典的键

正如您所怀疑的,您当前没有在for循环中创建任何新的df

请尝试:

# for loop grouped by dealer
for name,df in dfs.items():
    writer = pd.ExcelWriter(str(name)+'.xlsx', engine='xlsxwriter')
    df.to_excel(writer, index=False, header=True, sheet_name='Sheet1')
    writer.save()
    print(name + ' file created.')