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

Saving pandas dataframe subsets to xlsx using df.to_excel

我有一个 csv,我想将其拆分成单独的 excel 文件。当我尝试下面的操作时,它正在创建单个文件而不是过滤。我还是 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.')

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