excel合并多个工作表_将多个 Excel工作表合并到一个 Pandas 数据帧中

9b1ce00e8b2e0cbf1ece0be424d6fede.png

今日是程序员节,祝广大程序员们工作开心吧!虽然小编觉得跟日常没什么区别,也没看到有程序员小哥哥们放假或者不加班,那么今日就分享一个实用的日常小技巧希望对大家的工作有帮助让工作更轻松。

5622a97b5577c79d16c7b7f3fb92a65f.png

简介

最常用的 pandas 函数之一是 read_excel。本文展示了如何读入一个 Excel 工作簿中的所有选项卡,并使用一条命令将它们合并到一个 pandas 数据帧中。对于那些太长不想读的人来说,以下是该命令:

df = pd.concat(pd.read_excel('2018_Sales_Total.xlsx', sheet_name=None), ignore_index=True)

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

Excel 工作表

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

7e66de19ec610ce48f642bc7dd8a452e.png

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

  • 数据不能进行跨选项卡复制(工作表1是一个完整的月,后面的工作表总共只有一个月的数据)
  • 所有列的名称都是相同的
  • 您希望读入所有选项卡并合并它们

理解 read_excel

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

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

import pandas as pd

workbook_url = 'https://github.com/chris1610/pbpython/raw/master/data/2018_Sales_Total_Tabs.xlsx'
single_df = pd.read_excel(workbook_url, sheet_name='Sheet1')

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

all_dfs = pd.read_excel(workbook_url, sheet_name=None)

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

让我们检查生成的 all_dfs:

all_dfs

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

all_dfs

45244f34892c0d2af03caa5814d6d166.png

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

df  =  pd 。concat (all_dfs , ignore_index = True )

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

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

df = pd.concat(pd.read_excel(workbook_url, sheet_name=None), ignore_index=True)

总结

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

英文原文:https://pbpython.com/pandas-excel-tabs.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值