cha*_*dru 8 python data-analysis dataframe pandas
我有两个数据帧
df1
Name class value
Sri 1 5
Ram 2 8
viv 3 4
df2
Name class value
Sri 1 5
viv 4 4
Run Code Online (Sandbox Code Playgroud)
我想要的输出是,
df,
Name class value
Sri 2 10
Ram 2 8
viv 7 8
Run Code Online (Sandbox Code Playgroud)
请帮助,提前谢谢!
我认为需要set_index
两个DataFrame
S,add
和最后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
Run Code Online (Sandbox Code Playgroud)
如果值Name
不是唯一的使用groupby
和聚合sum
:
df = df1.groupby('Name').sum().add(df2.groupby('Name').sum(), fill_value=0).reset_index()
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4325 次 |
最近记录: |