首页 > 解决方案 > 查找两个excel工作表的列之间的差异

问题描述

我有两个都有多个工作表的 excel 文件。这两个文件有一些共同的工作表,即它们具有相同的工作表名称但不同的数据和值。但是,这些具有相同名称的工作表在一个文件中的列多于另一个。我想要做的是将具有额外列的工作表中的额外列复制到缺少它们的工作表(在其他 excel 文件中)。再次,公共列中的数据是不同的,所以我不能简单地将较大的表复制到较小的表中。

首先读取两个文件:

 v8 = pd.read_excel('Revised_V8.xlsx', sheet_name=None)
 v9 = pd.read_excel('Revised_V9.xlsx', sheet_name=None)

现在读取两个文件中的一个公用表

  MAP_8 = v8['MAP']
  MAP_9 = v9['MAP']

现在 MAP_8 和 MAP_9 都是 oredreddict。我使用这一行来获取 V9 中额外列的名称

  d=set(MAP_9)-set(MAP_8)

我被困在这里。我的想法是检索 d 中那些列中的数据,然后将其添加到 v8 数据框

  xtracol = MAP_9[d]    # I want to return the values of those columns saved in d

我在这里收到一个错误 TypeError: unhashable type: 'set'

抱歉,我不知道如何解决此问题或在不使用 set 的情况下获取 extar 列。

总而言之,假设 MAP_9 有三列 A、B、C,其中 MAP_8 只有两列 A、B。A 和 B 中的数据在两张表之间是不同的。我只想从 MAP_9 复制列 C 并将其添加到 MAP_8 而不更改 MAP_8 中 A 和 B 的值。

这只是一个简单的案例,但我有十多个常用工作表,有些比另一个多出几十列

先感谢您

标签: pythonexcelpandas

解决方案


我不知道用 Python 操作 Excel 的语法,但我对 Excel 和 Python 有一定的了解。现在您有了另一张工作表中缺少的列的名称,对于每个额外的列,在缺少它的工作表中添加一个空列,名称相同。然后将额外列中的数据加载到 Python 中,并将其写入新的空列中。要自动重复该过程,请执行一些简单的 Python 循环,例如: 等等。如果需要,我可以在评论中对此进行扩展。For sheet in sheets:
MAP_8 = v8[sheet]
MAP_9 = v9[sheet]


推荐阅读