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

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

【问题讨论】:

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

标签: python excel pandas


【解决方案1】:

pandas 支持多种数据格式。

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

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

  3. 使用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与字段名匹配,提取对应/相邻信息。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-10
    • 1970-01-01
    • 1970-01-01
    • 2021-04-20
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多