如何将非结构化的 excel 电子表格加载到熊猫中?

Posted

技术标签:

【中文标题】如何将非结构化的 excel 电子表格加载到熊猫中?【英文标题】:How to load unstructured excel spreadsheet into pandas? 【发布时间】:2017-11-12 02:29:33 【问题描述】:

我熟悉如何将 excel 电子表格加载到 pandas 数据框中。但是,这假设电子表格本身具有明确定义的列和行。我有 1 个包含多个表的 excel 表,每个表都有不同的行数和列数。在同一张表中还有一些文本和表格。关于如何将其加载到熊猫中的任何建议?谢谢。

【问题讨论】:

用另一个 3rd 方库解析它,然后把它扔到一个 DataFrame 中,我们可以得到一些示例数据吗? 我想以编程方式进行,如果可能的话,最好不要使用任何其他 3rd 方库。请在此处找到示例数据:ufile.io/5novd 【参考方案1】:

pandas 支持多种数据格式。

    使用pd.read_excel,读取excel电子表格文件(.xlsx)

    将电子表格导出到 csv 并使用 pd.read_csv。我喜欢使用这种方法。

    使用pd.ExcelFile来加载,看起来和方法1很像,但是更快见other answer

【讨论】:

谢谢,是的,我已经尝试过 pd.read_excel。但是如何使用它来解析具有多个结构不一致的表的excel表?请参阅ufile.io/5novd 提供的示例数据 好吧,我建议将其拆分为多个电子表格。在 Pandas 中处理各种结构是很困难的。在您的文件中, row[2:7] 可以是单个 pandas DataFrame。加载多个结构后,连接或处理您的数据!【参考方案2】:
df = pd.read_excel('path/to/excel', engine='openpyxl')
records = df.to_dict('records')

然后创建一个解析器来逐行读取records。将keys与字段名匹配,提取对应/相邻信息。

【讨论】:

以上是关于如何将非结构化的 excel 电子表格加载到熊猫中?的主要内容,如果未能解决你的问题,请参考以下文章

Excel 2016 Power Query无法加载到电子表格

熊猫数据帧功能

将 Excel 电子表格导入 phpMyAdmin

如何将excel电子表格传输到access数据库

如何使用 VBA 在 Excel 中添加连接(到外部数据源)并将其保存到该 Excel 电子表格的连接列表

以小数秒将excel时间导入熊猫