为了账号安全,请及时绑定邮箱和手机立即绑定

如何使用 .add() 函数在 python 中合并两个数据帧

如何使用 .add() 函数在 python 中合并两个数据帧

智慧大石 2024-01-04 15:29:18
请使用所附图片作为参考。我有两个数据框df_class_a有数据:Subject maximum minimumPhysics  98      50 Maths    100     45 Chem     99      65  df_class_b 与数据Subject maximum minimumMaths    100     45 Physics  98      44 Chem     85      50 language 88      54 我想将它们合并以形成一个新的数据框,例如 df_addSubject maximum minimumMaths    200     90 Physics  196     94 Chem     184     115 Language  88     54这将是数据帧的总和,但它们都没有相同的数据行。我如何使用 pandas 中的 .add 功能来做到这一点。
查看完整描述

3 回答

?
芜湖不芜

TA贡献1796条经验 获得超7个赞

另一个解决方案:


m = pd.merge(df1, df2, on='Subject', how='outer')

m['maximum'] = m[['maximum_x', 'maximum_y']].sum(axis=1)

m['minimum'] = m[['minimum_x', 'minimum_y']].sum(axis=1)


print(m[['Subject', 'maximum', 'minimum']])

印刷:


    Subject  maximum  minimum

0     Maths    200.0     90.0

1   Physics    196.0     94.0

2      Chem    184.0    115.0

3  language     88.0     54.0


查看完整回答
反对 回复 2024-01-04
?
临摹微笑

TA贡献1982条经验 获得超2个赞

转换SubjectDataFramesby中的索引DataFrame.set_index,然后使用DataFrame.addwith fill_value=0)

df = df_class_a.set_index('Subject').add(df_class_b.set_index('Subject'), fill_value=0)

print (df)

          maximum  minimum

Subject                   

Chem        184.0    115.0

Maths       200.0     90.0

Physics     196.0     94.0

language     88.0     54.0

concat或者与聚合一起使用sum


df = pd.concat([df_class_a, df_class_b]).groupby('Subject', as_index=False).sum()

print (df)

    Subject  maximum  minimum

0      Chem      184      115

1     Maths      200       90

2   Physics      196       94

3  language       88       54


查看完整回答
反对 回复 2024-01-04
?
长风秋雁

TA贡献1757条经验 获得超7个赞

你可以试试:


df_add = pd.DataFrame({

'Subject': df_class_a['Subject'],

'Maximum': df_class_a['Maximum']+df_class_b['Maximum'],

'Minimum': df_class_a['Minimum']+df_class_b['Minimum']

})


查看完整回答
反对 回复 2024-01-04
  • 3 回答
  • 0 关注
  • 51 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信