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

我是熊猫的新手,你能帮我解决这个问题吗,亲爱的,我有 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       number

0   name    1

1   color   32

2   city    22

3   animal  13

DF1

    A       number

0   name    12

1   color   2

2   city    42

3   animal  15

我需要得到列号的总和,例如


DF1

    A       number

0   name    13

1   color   34

2   city    64

3   animal  27

但是如果我做 new = df1 + df2 我得到一个


NEW

    A             number

0   namename        13

1   colorcolor      34

2   citycity        64

3   animalanimal    27

我什至尝试在=“A”上合并但没有。谁能启发我谢谢


白猪掌柜的
浏览 153回答 2
2回答

千万里不及你

这里有两种不同的方式:一种带有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  number0  animal      281    city      642   color      343    name      13
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python