我想将数据框拆分为许多 Excel 文件,使用其行值的名称作为文件名
示例数据框
account_key State
0 111 NY
1 111 CA
2 222 NJ
3 888 WE
4 888 TL
预期结果:
第一个Excel文件的名称是account_111.xlsx,其中的数据是
account_key State
111 NY
111 CA
第二个Excel文件的名称是account_222.xlsx,其中的数据是
account_key State
222 NJ
我的代码没有给我预期的结果
names = df['account_key'].unique().tolist()
writer = pd.ExcelWriter(path + 'my.xlsx', engine='xlsxwriter')
for myname in names:
mydf = df.loc[df['account_key']==myname]
mydf.to_excel(writer)
writer.save()
顺便问一下,如何修改代码以在循环时将工作表从“sheet1”重命名为“myNote”?
最佳答案
IIUC,只需在groupby
中使用to_excel
for acc, g in df.groupby('account_key'):
g.to_excel(f'account_{acc}.xlsx')
如果您的 Python 版本较旧,不支持 f-strings
,请使用
for acc, g in df.groupby('account_key'):
g.to_excel('account_{}.xlsx'.format(acc))
要命名工作表,只需将名称作为第二个参数传递
g.to_excel(f'account_{acc}.xlsx', 'myNote')
关于Python将数据框切片为多个Excel文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51936575/