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

从熊猫的 2 个数据框中添加 2 列

从熊猫的 2 个数据框中添加 2 列

白猪掌柜的 2021-09-11 19:35:07
我是熊猫的新手,你能帮我解决这个问题吗,亲爱的,我有 2 个 DF:df1 = pd.DataFrame({'A': ['name', 'color', 'city', 'animal'], 'number': ['1', '32', '22', '13']})df2 = pd.DataFrame({'A': ['name', 'color', 'city', 'animal'], 'number': ['12', '2', '42', '15']})df1    A       number0   name    11   color   322   city    223   animal  13DF1    A       number0   name    121   color   22   city    423   animal  15我需要得到列号的总和,例如DF1    A       number0   name    131   color   342   city    643   animal  27但是如果我做 new = df1 + df2 我得到一个NEW    A             number0   namename        131   colorcolor      342   citycity        643   animalanimal    27我什至尝试在=“A”上合并但没有。谁能启发我谢谢
查看完整描述

2 回答

?
千万里不及你

TA贡献1784条经验 获得超9个赞

这里有两种不同的方式:一种带有add,一种带有concat和groupby。在任何一种情况下,您都需要首先确保您的number列是数字(您的示例数据框有字符串):


# set `number` to numeric (could be float, I chose int here)

df1['number'] = df1['number'].astype(int)

df2['number'] = df2['number'].astype(int)


# method 1, set the index to `A` in each and add the two frames together:

df1.set_index('A').add(df2.set_index('A')).reset_index()


# method 2, concatenate the two frames, groupby A, and get the sum:

pd.concat((df1,df2)).groupby('A',as_index=False).sum()

输出:


        A  number

0  animal      28

1    city      64

2   color      34

3    name      13


查看完整回答
反对 回复 2021-09-11
  • 2 回答
  • 0 关注
  • 152 浏览
慕课专栏
更多

添加回答

举报

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