Я новичок в Python, и мне нужно объединить 2 фрейма данных с идентификатором в качестве первичного ключа. Мне нужно суммировать все расходы от df1 и df2.

df1:
[df1][1]

id     Name     Charge
1       A         100
1       A         100
2       B         200
2       B         200
5       C         300
6       D         400

df2:
[df2][2]

id     Name      Charge
1       A          100
1       A          100
2       B          200
8       X          200

output:
[output][3]

id       Name      Charge(TOTAL from df1 & df2)
1         A           400
2         B           600
5         C           300
6         D           400
8         X           200
0
karseg24 26 Окт 2020 в 04:52

2 ответа

Лучший ответ

Пытаться:

pd.concat([df1, df2]).groupby(['id', 'Name'], as_index=False)['Charge'].sum()

Выход:

   id Name  Charge
0   1    A     400
1   2    B     600
2   5    C     300
3   6    D     400
4   8    X     200
1
Scott Boston 26 Окт 2020 в 02:08
ans = pd.concat([df1, df2], axis=0).groupby(["id", "Name"]).sum().reset_index()

print(ans)
   id Name  Charge
0   1    A     400
1   2    B     600
2   5    C     300
3   6    D     400
4   8    X     200
1
Bill Huang 26 Окт 2020 в 02:05