【发布时间】:2019-08-29 22:56:03
【问题描述】:
我有两个都有多个工作表的 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 的值。
这只是一个简单的案例,但我有十几个常用工作表,有些比另一个多出几十列
提前谢谢你
【问题讨论】: