gzpcgreen 2021-08-13 01:27 采纳率: 40%
浏览 35
已结题

如何增加一个列,使得值为另一个表值的和

表一:

name point
A0 10
A1 20
A2 30
A3 40

表二
name money
A0 10
A1 10
A0 10
A1 10

现在想得到表三:

name point moneey
A0 10 20
A1 20 20
A2 30 0
A3 40 0

import pandas as pd
df1 = pd.DataFrame({'name': ['A0', 'A1', 'A2', 'A3'],
'point': [10, 20, 30, 40]})
df2 = pd.DataFrame({'name': ['A0', 'A1', 'A0', 'A1'],
'money': ['10', '10', '10', '10']})
后面怎么做啊?谢谢

  • 写回答

2条回答 默认 最新

  • CSDN专家-HGJ 2021-08-13 08:58
    关注

    在pandas中使用concat,merge,join都可以进行数据框合并。实现代码如下:

    import pandas as pd
    df1 = pd.DataFrame({'name': ['A0', 'A1', 'A2', 'A3'],
                        'point': [10, 20, 30, 40]})
    df2 = pd.DataFrame({'name': ['A0', 'A1', 'A0', 'A1'],
                        'money': ['10', '10', '10', '10']})
    df2.money=df2.money.apply(lambda x:int(x))
    df2=df2.groupby(['name'])['money'].sum().to_frame().reset_index()
    df=pd.concat([df1,df2['money']],axis=1).fillna(0)
    df.money = df.money.apply(lambda x: int(x))
    print(df)
    

    运行结果:

    name  point  money
    0   A0     10     20
    1   A1     20     20
    2   A2     30      0
    3   A3     40      0
    
    

    如对你有帮助,请点击我回答的右上方采纳按钮予以采纳一下。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
    1人已打赏
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月21日
  • 已采纳回答 8月13日
  • 创建了问题 8月13日

悬赏问题

  • ¥15 Coze智能助手搭建过程中的问题请教
  • ¥15 12864只亮屏 不显示汉字
  • ¥20 三极管1000倍放大电路
  • ¥15 vscode报错如何解决
  • ¥15 前端vue CryptoJS Aes CBC加密后端java解密
  • ¥15 python随机森林对两个excel表格读取,shap报错
  • ¥15 基于STM32心率血氧监测(OLED显示)相关代码运行成功后烧录成功OLED显示屏不显示的原因是什么
  • ¥100 X轴为分离变量(因子变量),如何控制X轴每个分类变量的长度。
  • ¥30 求给定范围的全体素数p的(p-2)/p的连乘积值
  • ¥15 VFP如何使用阿里TTS实现文字转语音?