首页 > 解决方案 > 向数据框中添加一行,即 2 个现有行的总和

问题描述

我无法找到正确的代码来向我的数据框中添加一行,该行是数据框中现有 2 行的总和。

到目前为止,我有这个作为我的代码:

df = pd.DataFrame(np.random.randint(0,100,size=(20, 5)), columns=['First','Second','Third','Fourth','Fifth'],index=list('abcdefghijklmnopqrst'))

df2 = pd.DataFrame({'First':['0'],'Second':['1'],'Third':['-1'],'Fourth':['2'],'Fifth':['-2']},index=["u"])

df3 = pd.concat([df,df2],axis=0,join='inner')
print(df3)

我想在 df3 中添加一行“v”,其中行“v”是 df3 的行“b”和“d”之和

以下是我的尝试,但我似乎无法弄清楚!请让我知道我是否靠近。提前致谢 :)

df4 = df3["b","d"].sum()
df4= df3["b"].add(df3["d"], index=["v"])
df3.loc['v'] = df.sum("b", "d")
df3.loc['v',"First','Second','Third','Fourth','Fifth'] = df3.sum("b", "d")

标签: pythonpandassumrow

解决方案


你现在的问题似乎是想得太复杂了。就像说 *row 'v' 是称为 'b' 的行和称为 'd' 的行的总和一样简单。或者在 pandas 语法中:

df.loc['v'] = df.loc['b'] + df.loc['d']

如果你真的需要使用 sum() 函数,你必须了解它是如何在数据框上工作的。在您的情况下,您首先必须选择相应的行(这将返回这些行的视图作为 pandas.DataFrame),然后使用此视图的 sum() 函数,如下所示:

df.loc['v'] = df.loc[['b','d']].sum()

为我使用 pandas 0.23.3 和蟒蛇 3.6。


推荐阅读