gpt4 book ai didi

python - 如何对每一行求和并用总和替换行中的每个值?

转载 作者:太空狗 更新时间:2023-10-30 02:52:02 30 4
gpt4 key购买 nike

如果我有这样的数据框:

   1  2  3  4  5
1 2 4 5 NaN 3
2 3 5 6 1 2
3 3 1 1 1 1

我如何对每一行求和并将该行中的值替换为总和,以便得到如下内容:

   1   2  3  4  5
1 14 14 14 NaN 14
2 17 17 17 17 17
3 7 7 7 7 7

最佳答案

使用masksum 替换所有非缺失值:

df = df.mask(df.notnull(), df.sum(axis=1), axis=0)
print (df)
1 2 3 4 5
1 14 14 14 NaN 14
2 17 17 17 17.0 17
3 7 7 7 7.0 7

或者使用numpy.broadcast_tonumpy.where :

arr = df.values
a = np.broadcast_to(np.nansum(arr, axis=1)[:, None], df.shape)
df = pd.DataFrame(np.where(np.isnan(arr), np.nan, a),
index=df.index, columns=df.columns)

#alternative
df[:] = np.where(np.isnan(arr), np.nan, a)
print (df)
1 2 3 4 5
1 14.0 14.0 14.0 NaN 14.0
2 17.0 17.0 17.0 17.0 17.0
3 7.0 7.0 7.0 7.0 7.0

关于python - 如何对每一行求和并用总和替换行中的每个值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54280369/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com