python将excel数据合并_Python业务实践——将多个Excel工作表合并到一个Pandas数据帧中...

Python部落(python.freelycode.com)组织翻译,禁止转载,欢迎转发。

04036a6c29064026b1cd3df5613d5d93.png

简介

最常用的pandas函数之一是read_excel。本文展示了如何读入一个Excel工作簿中的所有选项卡,并使用一条命令将它们合并到一个pandas数据帧中。

对于那些想要TLDR(太长不读)的人来说,以下是该命令:

3f57ac89aacf49bf82557be93fbe6f41.jpg

请继续阅读,了解何时使用此功能以及它是如何工作的。

Excel工作表

在本例中,我们假设Excel工作簿的结构如下:

1a4946a123e6406d9b44db53ea85b5e7.jpg

我将描述的过程适用于以下情况:

数据不能进行跨选项卡复制(工作表1是一个完整的月,后面的工作表总共只有一个月的数据)

所有列的名称都是相同的

您希望读入所有选项卡并合并它们

理解read_excel

read_excel函数是一个全能的pandas函数。对于这种特定情况,我们可以使用sheet_name参数来简化我们Excel文件中所有工作表的读入。

大多数情况下,您会从一个Excel文件中读入一个特定的工作表:

62c84fc957da4527800792aa600d662c.jpg

如果仔细查看文档,您可能会注意到,如果您使用sheet_name=None,您就可以一次读取工作簿中的所有工作表。让我们试一下:

afb38170d86a4c48a7b931ab2d97b0f8.jpg

Pandas将读入所有的工作表并返回一个collections.OrderedDict对象。为了提高本文的可读性,我定义了完整的url并将其传递给read_excel。在实践中,您可能会决定使用这个命令。

让我们检查生成的all_dfs:

25a9dbfa8202464cabe28fceecac0c73.jpg

如果您想将一个单个的工作表作为一个数据帧来访问:

2492b9da7ed8484ab65e28db3ea84264.jpg

如果我们想将所有单独的数据帧组合到一个数据帧中,我们就使用pd.concat:

b3c8023a1d014d50adf7bb2555a87d7d.jpg

在这种情况下,我们将使用ignore_index,因为自动生成的Sheet1、Sheet2等索引是没有意义的。

如果您的数据符合上面列出的结构,这一行程序将返回一个pandas数据帧,它合并了每个Excel工作表中的数据:

62a5c747ff654090b0add1df80c76504.jpg

总结

这个技巧在合适的情况下是有用的。它还说明了“仅”读入一个Excel文件的pandas命令的功能有多强大。如果您想亲自尝试一下,您可以在github上找到完整的notebook。英文原文:https://pbpython.com/pandas-excel-tabs.html

译者:野生大熊猫

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值