Python Excel Pandas DataFrame 导入 - 处理嵌套(和合并)标题

问题描述 投票:0回答:0

我花了几天时间来解决将一系列 Excel 电子表格导入 Pandas DataFrames 的问题。我在这方面“相对”有经验,并且可以处理各种不同的场景,但我对 Python 仍然很陌生,并且正在努力克服这个问题。 本质上,我有几个 Excel 文件,我想单独导入它们,它们具有嵌套(2 行、多列)标题。我想将这两行合并为一个标题行,将给定列的第 1 行中包含的值与第 2 行中找到的值连接起来。

如果每行的列完全对齐,我有信心知道如何将数据合并到一行中,并在适当的地方连接。但是,在这些特定电子表格的实例中,第 1 行中的某些列为空白,以及合并列,其中第 1 行中的 1 个合并列可能与第 2 行中的多个列对齐。

我希望以下内容能更好地演示这种情况(顶部“列”输出指示显示单元格定位):

| A 栏 | B 栏 | C 栏 | D 栏 | E 栏 | F 栏 | G 栏 |

| (空白)| (空白)|标头 1(合并子 3 - 5)|标头 2(合并子 6 - 7)|

|子 1 |子 2 |子 3 |子 4 |子 5 |子 6 |子 7 |

理想的标题行需要如下所示:

|子 1 |子 2 |标题 1 + 子 3 |标题 1 + 子 4 |标题 1 + 子 5 |标头 2 + 子 6 |标头 2 + 子 7 |

还有比这更多的列,每个列在第 1 行和第 2 行中都有不同的(空白)配置和合并或完全对齐的列。

如果有帮助的话,第 2 行是可预测的 - 只有第 1 行包含(空白)或合并行等。此外,在第 1 行中,前 n 个值始终为(空白) - NaN。但是,一个电子表格在开始时的(空白)值数量与另一个电子表格不同。

我希望能够动态处理这两行,无论行中的值总体是什么样子。

我已经尝试了许多不同的方法(太多了以至于无法记住/提及 - 包括提出一个奇怪的 YAML 解决方案来手动映射变得非常笨拙的列定义),并且很可能我需要结合一些我已经掌握的方法尝试制定解决方案。我似乎无法确定实际的解决方案。
  1. 目前,我的方法是尝试使用第 2 行关联列中的值填充第 1 行中的前 n(空白)列。然后,填充 DataFrame 中的合并标题。完成后,我可以将第 2 行中的值合并到第 1 行中。但是,我似乎无法使其一致工作。 Ffill 似乎对这些 DataFrame 很脾气暴躁,这一切都有点痛苦。

还有一种(非常真实的)可能性是我使整个问题过于复杂化,并且有一个更简单的解决方案。

如前所述,我对 Python 还很陌生。我也是 Stackoverflow 的新手 - 这是我的第一篇文章。我希望我正确地概述了我的问题并提供了足够的信息。我已经四处寻找这个问题的答案,但我无法找到任何适合我所面临的场景的东西。如果有人可以提供帮助,或者提供一些关于如何更好地解决这个问题的想法,我将非常感激。

python pandas dataframe header excel-import
© www.soinside.com 2019 - 2024. All rights reserved.