我是熊猫的新手,你能帮我解决这个问题吗,亲爱的,我有 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
添加回答
举报
0/150
提交
取消