python - 将同一个 excel 中的多张工作表导入 pandas 的一个数据框中
问题描述
我有一个excel 文件,上面有几个相同的结构化工作表(相同的标题和列数)(工作表名称:01,02,...,12)。
我怎样才能把它放到一个数据框中?
现在我会单独加载它:
df1 = pd.read_excel('path.xls', sheet_name='01')
df2 = pd.read_excel('path.xls', sheet_name='02')
...
然后将其浓缩。最pythonic的方法是什么,并直接获得一个包含所有工作表的数据框?还假设我事先不知道每个工作表名称。
解决方案
将文件读取为:
collection = pd.read_excel('path.xls', sheet_name=None)
combined = pd.concat([value.assign(sheet_source=key)
for key,value in collection.items()],
ignore_index=True)
sheet_name = None 确保读入所有工作表。collection
是一个字典,其中 sheet_name 作为键,实际数据作为值。
combine 使用 pandas concat 方法为您获取一个数据帧。
我添加了额外的列 sheet_source,以防您需要跟踪每行数据的来源。
您可以在 pandas doco上阅读更多相关信息
推荐阅读
- aes - 如何将 altbeacon 数据加密为 aes-ecb 格式
- php - 从 PHP 文件中的 $_POST 数据调用 $_SESSION 变量?
- javascript - 使用 GET 根据嵌套字段返回记录
- scala - 对于 Scala 2.13,更新具有数百万更新的 LongMap、HashMap 或 TrieMap 的最快方法是什么?
- python - PySide2:如何在 QWebEngineView 中嵌入 HTML5 视频
- python - 无法在 python 3.8 上安装熊猫
- web-scraping - 使用 Google 表格进行网页抓取的指南
- javascript - 如何使 vis.js 网络上的 Edges 不可选择?
- token - 什么是区块链中的插槽?
- java - 对编写存储字符的 ListADT 感到困惑