我会根据一列对该数据框的每一行求和。
输入数据框:
a b
0 red 5
1 red 8
2 red 2
3 red 4
4 red 1
我使用此代码对值求和 sumcol = df['b'].sum()
但是对整个列求和我会在新列中为每一行计算一个值 -1。
预期数据框:
a b c
0 red 5 15
1 red 8 7
2 red 2 5
3 red 4 1
4 red 1 0
最佳答案
使用 apply lambda
和 axis=1
。
x.name
将为您提供每一行的当前索引。使用 x.name+1:
简单地为每一行制作切片:这意味着获取下面的所有行。
df["c"] = df.apply(lambda x: df.loc[x.name+1:,"b"].sum(),axis=1)
print(df)
a b c
0 red 5 15
1 red 8 7
2 red 2 5
3 red 4 1
4 red 1 0
如果你想得到 summation/number_of_values 这看起来像 mean()
那么尝试:
df["c"] = df.apply(lambda x: df.loc[x.name+1:,"b"].mean(),axis=1)
print(df)
a b c
0 red 5 3.750000
1 red 8 2.333333
2 red 2 2.500000
3 red 4 1.000000
4 red 1 NaN
关于python - 对每一行的列值求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67670063/