使用df.to_excel将熊猫数据框子集保存到xlsx

时间:2020-04-30 23:12:36

标签: python pandas dataframe for-loop xlsxwriter

我有一个要分解成单个excel文件的csv。当我尝试以下操作时,它正在创建单个文件,但未过滤。我对python还是很陌生,我猜我在for循环中缺少对数据帧进行切片的一行。感谢您的帮助!

import pandas as pd

# pull in csv
data = pd.read_csv('test.csv',encoding='UTF-8')   
df = pd.DataFrame(data)
df.fillna("", inplace = True)

# group by dealer
dfs = dict(tuple(df.groupby('Dealer')))

# for loop grouped by dealer
for name in dfs:
    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.')

1 个答案:

答案 0 :(得分:2)

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.')