如何将单元格值从一个数据帧复制到另一数据帧(不匹配的数据帧长度)

时间:2020-09-30 11:15:09

标签: python-3.x pandas dataframe

我有两个长度不等的数据帧:

Cat Count   Count03
A   17469   0
B   2327    0
C   7649    0
D   11496   0
E   26      0
F   1996    0
G   175     0
H   2914    0
I   486     0
J   0       0
K   4052    0 
Cat Count   Count03
A   0       480
B   0       34
C   0       234
E   0       56
F   0       4545
G   0       44
I   0       112
J   0       12
K   0       1

我想将df2.Count03中的值合并到df1.Count03中,如df1.updated数据框中所示。

Cat Count   Count03
A   17469   480
B   2327    34
C   7649    234
D   11496   0
E   26      56
F   1996    4545
G   175     44
H   2914    0
I   486     112
J   0       12
K   4052    1

我面临的挑战是,因为数据帧的长度不相等,这意味着外部联接和内部联接似乎无法按要求工作。我想知道是否有一种优雅的方法可以跨数据帧从一个单元格复制值?

关于方法,我在想以下方法(恕我直言,丑陋的方法)。伪代码如下:


      copy contents of df2.count03 to df1.count3

else
      assign a value of 0 

任何有关如何解决该问题的技巧都将受到赞赏。

谢谢 乔纳森

1 个答案:

答案 0 :(得分:1)

concat与聚合sum一起使用,可以正常工作,因为两个DataFrame中的列名称相同:

df = pd.concat([df1, df2]).groupby('Cat', as_index=False).sum()
print (df)
   Cat  Count  Count03
0    A  17469      480
1    B   2327       34
2    C   7649      234
3    D  11496        0
4    E     26       56
5    F   1996     4545
6    G    175       44
7    H   2914        0
8    I    486      112
9    J      0       12
10   K   4052        1