如何合并两个数据框并对列的值求和
how to merge two dataframes and sum the values of columns
我有两个数据框
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
我想要的输出是,
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
请帮忙,提前致谢!
我认为需要set_index
for both DataFrame
s, add
and last reset_index
:
df = df1.set_index('Name').add(df2.set_index('Name'), fill_value=0).reset_index()
print (df)
Name class value
0 Ram 2.0 8.0
1 Sri 2.0 10.0
2 viv 7.0 8.0
如果 Name
中的值不是唯一的,请使用 groupby
并聚合 sum
:
df = df1.groupby('Name').sum().add(df2.groupby('Name').sum(), fill_value=0).reset_index()
pd.concat
+ groupby
+ sum
您可以连接您的个人数据框,然后按您的键列分组:
df = pd.concat([df1, df2])\
.groupby('Name')['class', 'value']\
.sum().reset_index()
print(df)
Name class value
0 Ram 2 8
1 Sri 2 10
2 viv 7 8
我有两个数据框
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
我想要的输出是,
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
请帮忙,提前致谢!
我认为需要set_index
for both DataFrame
s, add
and last reset_index
:
df = df1.set_index('Name').add(df2.set_index('Name'), fill_value=0).reset_index()
print (df)
Name class value
0 Ram 2.0 8.0
1 Sri 2.0 10.0
2 viv 7.0 8.0
如果 Name
中的值不是唯一的,请使用 groupby
并聚合 sum
:
df = df1.groupby('Name').sum().add(df2.groupby('Name').sum(), fill_value=0).reset_index()
pd.concat
+ groupby
+ sum
您可以连接您的个人数据框,然后按您的键列分组:
df = pd.concat([df1, df2])\
.groupby('Name')['class', 'value']\
.sum().reset_index()
print(df)
Name class value
0 Ram 2 8
1 Sri 2 10
2 viv 7 8