繁体   English   中英

如何在不同选项卡中保存或导出 excel 中的多个数据帧?

[英]How to Save or export multiple dataframes in excel in different tabs?

我需要在不同选项卡中的 excel 中导出或保存 pandas 多个 Dataframe 吗? 假设我的df是:

df1:
Id  Name    Rank
1   Scott   4
2   Jennie  8
3   Murphy  1

df2:
Id  Name    Rank
1   John     14
2   Brown    18
3   Claire   11

df3:
Id  Name    Rank
1   Shenzen   84
2   Dass      58
3   Ghouse    31

df4:
Id  Name    Rank
1   Zen     104
2   Ben     458
3   Susuie  198

这是我的四个数据框,我需要导出为带有 4 个选项卡的 Excel,即 df1、df2、df3、df4。

一个简单的方法是将您的项目保存在一个集合中并使用pd.ExcelWriter Class

让我们使用字典。

#1 使用您的选项卡名称和 dataframe 创建一个字典。

dfs  = {'df1' : df1, 'df2' : df2...} 

#2 创建一个 excel 写入器 object。

writer = pd.ExcelWriter('excel_file_name.xlsx')

#3 遍历你的字典并保存你的 excel 文件。

for name,dataframe in dfs.items():
    dataframe.to_excel(writer,name,index=False)

writer.save()

添加路径。

from pathlib import Path

trg_path = Path('your_target_path')

writer = pd.ExcelWriter(trg_path.joinpath('excel_file.xlsx'))

使用 xlsxwriter,您可以执行以下操作:

import xlsxwriter
import pandas as pd

### Create df's here ###

writer = pd.ExcelWriter('C:/yourFilePath/example.xslx', engine='xlsxwriter')
workbook = writer.book

### First df tab
worksheet1 = workbook.add_worksheet({}.format('df1') # The value in the parentheses is the tab name, so you can make that dynamic or hard code it

row = 0
col = 0

for Name, Rank in (df1):
    worksheet.write(row, col, Name)
    worksheet.write(row, col + 1, Rank)
    row += 1

### Second df tab

worksheet2 = workbook.add_worksheet({}.format('df2')

row = 0
col = 0

for Name, Rank in (df2):
    worksheet.write(row, col, Name)
    worksheet.write(row, col + 1, Rank)
    row += 1

### as so on for as many tabs as you want to create

workbook.close()


xlsxwriter 还允许您进行大量格式化。 如果您想这样做,请查看文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM