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

Python 如何在excel的不同选项卡中保存或导出多个数据框?,python,python-3.x,pandas,python-2.7,Python,Python 3.x,Pandas,Python 2.7,我需要在excel中的不同选项卡中导出或保存多个数据框? 假设我的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 df

我需要在excel中的不同选项卡中导出或保存多个数据框? 假设我的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

让我们用字典

#1使用选项卡名称和数据框创建字典

dfs  = {'df1' : df1, 'df2' : df2...} 
#2创建excel writer对象

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还允许您进行大量格式化。如果要执行此操作,请使用writer.save()命令将我的excel保存到何处,我需要在本地系统中的物理路径中保存,因此尝试了此writer.save(“mypath”),但没有将路径添加到字符串或使用
os.join
pathlib.path.joinpath(目标路径,excel文件名)
我将发表我的帖子。假设我们有100个df,我们不能手动完成这个df={'df1':df1,'df2':df2…},有没有办法自动完成这一行。这不在@Mohekar问题的范围之内,你是如何生成你的数据帧的?那么你是如何得到100个不同的数据帧变量的@莫赫卡?