如何在 Pandas 中合并两个行数不同但有一个公共(public)列的 DataFrame?
数据框 1:
CName PName Col1 Col2
A1 XX1 34 22
A2 XX2 23 44
A1 XX3 11 12
A2 XX4 23 43
A1 XX5 42 76
A3 XX6 15 56
A4 XX7 33 45
A5 XX8 223 87
A5 XX9 12 56
A5 XX10 87 34
A5 XX11 6 23
A4 XX12 55 33
数据框2:
CName read unread
A1 12 43
A2 24 78
A3 1 65
A4 2 16
A5 5 6
因此生成的 DataFrame 必须如下所示:
CName PName Col1 Col2 SumOfReadAndUnRead
A1 XX1 34 22 55
A2 XX2 23 44 102
A1 XX3 11 12 55
A2 XX4 23 43 102
A1 XX5 42 76 55
A3 XX6 15 56 66
A4 XX7 33 45 18
A5 XX8 223 87 11
A5 XX9 12 56 11
A5 XX10 87 34 11
A5 XX11 6 23 11
A4 XX12 55 33 18
最佳答案
将df2
中的已读和未读列求和,然后将其加入df1
。
>>> df1.join(df2.set_index('CName').sum(axis=1).to_frame('SumOfReadAndUnRead'), on='CName')
CName PName Col1 Col2 SumOfReadAndUnRead
0 A1 XX1 34 22 55
1 A2 XX2 23 44 102
2 A1 XX3 11 12 55
3 A2 XX4 23 43 102
4 A1 XX5 42 76 55
5 A3 XX6 15 56 66
6 A4 XX7 33 45 18
7 A5 XX8 223 87 11
8 A5 XX9 12 56 11
9 A5 XX10 87 34 11
10 A5 XX11 6 23 11
11 A4 XX12 55 33 18
关于python - 合并两个具有不同行数的DataFrame,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45377148/