当一个工作簿故意复制数据时,如何合并两个工作簿?

时间:2019-08-12 17:08:43

标签: python excel pandas merge

我最近开始使用熊猫。在两个工作簿中,我都有一个名为CODE的列。第一个工作簿的唯一代码列较短,例如1009。在第二个工作簿中,列表较长,并且1009可以出现多次。我希望将较小的工作簿中某一行的所有信息复制并追加到第二个工作簿中具有相同代码的每一行。

工作簿1

CODE x y

1009 1 3

1112 3 2

工作簿2

CODE n

1009 bob

1009 john

1112 mark

1112 dan

1112 finn

最终工作簿

CODE n x y

1009 bob 1 3

1009 john 1 3

1112 mark 3 2

1112 dan 3 2

1112 finn 3 2

我的尝试

import pandas as pd
#Opening workbook
wb1 = pd.read_excel('one.xlsx')    #short list
wb2 = pd.read_excel('two.xlsx')    #looooong list

result = pd.merge(wb1, wb2, on=['CODE'])
result.to_excel('merged.xlsx')

1 个答案:

答案 0 :(得分:0)

我相信这是您要寻找的?确保知道merge的工作方式及其超参数(主要是onhow)。

import pandas as pd
a = {'CODE':[1009,1112],'x':[1,3],'y':[3,2]}

b = {'CODE':[1009,1009,1112,1112,1112],'n':['bob','john','mark','dan','finn']}
dfa = pd.DataFrame(data=a)
dfb = pd.DataFrame(data=b)
c = dfb.merge(dfa, on='CODE', how='left')
print(c)

此输出为我提供了请求的数据帧:

   CODE     n  x  y
0  1009   bob  1  3
1  1009  john  1  3
2  1112  mark  3  2
3  1112   dan  3  2
4  1112  finn  3  2