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