我有两个都有多个工作表的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:无法散列的类型:'set'
对不起,但是我不知道如何在不使用set的情况下解决此问题或获取extar列。
总结一下,假设MAP_9有三列A,B,C,而MAP_8只有两列A,B。两张纸之间的A和B中的数据是不同的。我只想从MAP_9复制列C并将其添加到MAP_8,而无需更改MAP_8中的A和B的值。这只是一个简单的例子,但是我有十几个普通的工作表,其中一些比其他工作表多了
提前谢谢
答案 0 :(得分:0)
我不知道使用Python操作Excel的语法,但是我相当了解Excel和Python。现在,您有了另一个工作表中缺少的列的名称,对于每一个额外的列,请使用相同的名称向缺少它的工作表中添加一个空列。然后将额外列中的数据加载到Python中,并将其写入新的空列中。要自动重复该过程,请执行一些简单的Python循环,例如:
For sheet in sheets:
等等。如果需要,我可以在评论中对此进行扩展。
MAP_8 = v8[sheet]
MAP_9 = v9[sheet]