我有两个长度不等的数据帧:
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
任何有关如何解决该问题的技巧都将受到赞赏。
谢谢 乔纳森
答案 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