如何将非结构化的 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无法加载到电子表格