首页 > 解决方案 > 如何将单元格值从一个数据帧复制到另一个(数据帧长度不匹配)

问题描述

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

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 

非常感谢我如何解决这个问题的任何提示。

谢谢乔纳森

标签: python-3.xpandasdataframe

解决方案


concat与 aggregate一起使用,它工作得很好,因为两个ssum中的列名相同: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

推荐阅读