Python 如何对每行求和并用sum替换行中的每个值?
如果我有这样一个数据帧:Python 如何对每行求和并用sum替换行中的每个值?,python,pandas,python-2.7,dataframe,Python,Pandas,Python 2.7,Dataframe,如果我有这样一个数据帧: 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 如何对每行求和,并用求和替换该行中的值,从而得到如下结果: 1 2 3 4 5 1 2 4 5 NaN 3 2 3 5 6 1 2 3 3 1 1
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
如何对每行求和,并用求和替换该行中的值,从而得到如下结果:
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
用于将所有未缺失的值替换为sum
:
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
或用于:
使用
mul
df.notnull().replace(False,np.nan).mul(df.sum(1),axis=0).astype(float)
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