更新并包含两个Pandas的 Dataframe

yiytaume  于 2022-12-09  发布在  其他
关注(0)|答案(1)|浏览(114)

我想通过求和来更新Pandas的DataFrame,如果ID在合并的DataFrame中不存在,那么我想包括ID的相应行。例如,假设有两个DataFrame,如下所示:

import pandas as pd

d1 = pd.DataFrame({'ID': ["A", "B", "C", "D"], "value": [2, 3, 4, 5]})
d2 = pd.DataFrame({'ID': ["B", "D", "E"], "value": [1, 3, 2]})

然后,我希望生成的最终输出如下所示:

ID  value
0  A      2
1  B      4
2  C      4
3  D      8
4  E      2

你对此有什么想法吗?我试过用updateconcat函数来做,但这不是产生我想要的结果的方法。提前感谢。

nlejzf6q

nlejzf6q1#

使用concat并聚合sum

df = pd.concat([d1, d2]).groupby('ID', as_index=False).sum()
print (df)
  ID  value
0  A      2
1  B      4
2  C      4
3  D      8
4  E      2

另一个想法是,如果两个DataFrame中的ID是唯一的,则将ID转换为索引并使用DataFrame.add

df = d1.set_index('ID').add(d2.set_index('ID'), fill_value=0).reset_index()
print (df)
  ID  value
0  A    2.0
1  B    4.0
2  C    4.0
3  D    8.0
4  E    2.0

相关问题