有没有办法将 excel 工作簿中的单个工作表导出到使用 pandas 分隔 csv 文件?

Posted

技术标签:

【中文标题】有没有办法将 excel 工作簿中的单个工作表导出到使用 pandas 分隔 csv 文件?【英文标题】:Is there a way to export individual sheets in a excel workbook to separate csv files using pandas? 【发布时间】:2021-03-16 23:23:01 【问题描述】:

我的 Excel 工作簿中有 5 张工作表。我想使用 python 库将每张工作表导出到 csv。 This is a sheet showing sales in 2019。我根据它们所代表的年份命名了这些种子,如图所示here。

我已经阅读了使用 pandas 的 excel 电子表格。我使用了 for 循环,因为我有兴趣保存像 the_sheet_name.csv 这样的 csv 文件。这是我在 jupyter notebook 中的代码:

import pandas as pd

df = pd.DataFrame() 
myfile = 'sampledata.xlsx’ 
xl = pd.ExcelFile(myfile)

for sheet in xl.sheet_names: 
     df_tmp = xl.parse(sheet) 
     print(df_tmp)
     df = df.append(df_tmp, ignore_index=True,sort=False) 
     csvfile = f'sheet_name.csv' 
     df.to_csv(csvfile, index=False)

执行代码只会生成一个包含所有其他工作表数据的 csv 文件。我想知道是否有办法自定义我的代码,以便我可以生成单独的表格,例如 sales2011.csv、sales2012.csv 等。

【问题讨论】:

欢迎堆栈溢出。我们要求您提供minimal reproducible example,并在问题的文本中提供代码,而不是图片或链接,显示您根据自己的研究尝试过的内容,以便我们可以更好地帮助您 【参考方案1】:

使用sheet_name=None 返回数据帧字典:

dfs = pd.read_excel('file.xlsx', sheet_name=None)

for sheet_name, data in dfs.items():
    data.to_csv(f"sheet_name.csv")
    

【讨论】:

以上是关于有没有办法将 excel 工作簿中的单个工作表导出到使用 pandas 分隔 csv 文件?的主要内容,如果未能解决你的问题,请参考以下文章

EXCEL的多个工作表如何导出单个EXCEL工作表

使用 VBA 将 MS Access 记录集导出到 Excel 中的多个工作表/选项卡会生成只读文件

在 R 中拆分大型数据框并输出到单个 Excel 工作簿中的单独工作表中

将 Excel 工作簿中的所有图表导出到 windows 文件夹

python 此要点将从Excel工作簿中提取每个单独的工作表并将其导出为CSV。

如何在保存到 OneDrive 的 Excel 工作簿中运行 SQL 查询?