excel - 根据文件中的工作表名称从 pandas 数据框创建 csv 文件
问题描述
我有一个 excel 文件,其中有多个工作表(6)。我正在编写一个 python 脚本来将每个单独的工作表转换为 csv 文件。
我的输入文件看起来像这样,例如 sheetname = class5
Name ID
Mark 11
Tom 22
Jane 33
像这样我在excel中有多个工作表
我需要将它们转换为只有“名称”和类的 csv 文件,如下所示:
Mark,class5
Tom,class5
Jane,class5
像这样的一张纸我有多张纸所以我正在使用的是像这样转换数据框中的每张纸
xls = pd.Excelfile('path_of_file'.xlsx)
df1= pd.read_excel(xlsx, 'Sheet1')
df2 = pd.read_excel(xlsx, 'Sheet2')
df3 = pd.read_excel(xlsx, 'Sheet3')
如何制作名为 'class5'.csv 的 csv 文件,其输出与上面一样,并且对于每张工作表(例如 class6、7、8)都相同?
解决方案
因此,从您的问题中假设您想要的是将每个工作表的内容保存到不同的 csv,其中 csv 具有名称列,而另一列包含它来自的工作表的名称,没有标题。
如果这就是你所追求的,你可以这样做:
xls = pd.read_excel('path_of_file',sheet_name = None)
for sheet_name, df in xls.items():
df['sheet'] = sheet_name
df[['Name','sheet']].to_csv(f'{sheet_name}.csv', header=False)
关键是 read_excel 的 sheet_name 参数。正如您问题的评论者所说,将其保留为无,您将获得一本可以迭代的字典
推荐阅读
- javascript - JavaScript 异步/等待变量 null
- python - 如何在保留分组的同时按工作表拆分 Excel 工作簿
- javascript - 如何为测试规范全局声明自定义管道?
- flutter - 使用 AndrodX 创建新的 Flutter 应用程序时出错
- php - 如何检查存储过程是否正常工作并且没有任何错误?
- laravel-5 - 如何通过控制器存储方法将数据存储在表中?我在一个迁移文件中有两个表
- javascript - 如何在Typescript Angular中获取鼠标移动xy坐标的十进制值?
- c++ - Should methods returning const std::string& return const std::string_view instead?
- arrays - 数组元素上的 ReactJS onClick 事件
- typescript - 如何让 Typescript 识别我的自定义全局过滤器?