使用 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.')
我有一个 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.')