Python将数据框切片为多个Excel文件

标签 python excel pandas

我想将数据框拆分为许多 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/

相关文章:

python - Tornado 中的并发连接

python - 如何将curl命令行转换为pycurl代码

excel - VBA 删除连接, "Assignment to constant not permitted"错误

python - Pandas - 合并多个时间列并填充值

python - pandas 方式将一天中的时间(有效 datetime.time)转换为浮点变量

python - 从 Django 管理员发布时出现 Django ConnectionError (urllib3.connection.HTTPConnection)

python - 让 Fabric Python 库工作

c# - 它只导入 mysql 数据库中的 1 行

java - 无法使用 Java 读取包含阿拉伯语内容的 Excel 文件

python - 如何使用 groupby 计算数据框中先前使用的产品数量?