Python3.x Pandas意味着和std返回NAN

时间:2018-05-27 17:27:30

标签: python pandas mean

遇到这个我无法修复的问题,我有一个大型数据框(下面发布的样本),有5列。我想为每一行计算Std和mean。不知怎的,它一直在回NaN。

interface{}

我已检查过所有月份列和 CellName Apr-2018 Feb-2018 Jan-2018 Mar-2018 mean 0 BDG652ML_KPBENDULML1 9.450841 24.119474 27.091426 17.527006 NaN 1 BDG652ML_KPBENDULML2 15.917555 10.548731 11.019208 14.592388 NaN 2 BDG652ML_KPBENDULML3 24.957360 21.122519 21.197216 24.950549 NaN float64给出:

df.types

我知道我不需要排除细胞柱,我可以通过使用

轻松获得

CellName object Apr-2018 float64 Feb-2018 float64 Jan-2018 float64 Mar-2018 float64 dtype: object

我也尝试过:

df['mean'] = df.mean(numeric_only =True)

但仍然没有。与Std相同的行为。

关于我可能做错的任何提示?

1 个答案:

答案 0 :(得分:2)

每行axis=1使用参数meannumeric_only参数似乎应该省略:

df['mean'] = df.mean(axis=1)
#df['mean'] = df.mean(numeric_only=True, axis=1)
print (df)

              CellName   Apr-2018   Feb-2018   Jan-2018   Mar-2018       mean
0  BDG652ML_KPBENDULML1   9.450841  24.119474  27.091426  17.527006  19.547187
1  BDG652ML_KPBENDULML2  15.917555  10.548731  11.019208  14.592388  13.019470
2  BDG652ML_KPBENDULML3  24.957360  21.122519  21.197216  24.950549  23.056911
df['std'] = df.std(axis=1)
print (df)

              CellName   Apr-2018   Feb-2018   Jan-2018   Mar-2018       std
0  BDG652ML_KPBENDULML1   9.450841  24.119474  27.091426  17.527006  7.828126
1  BDG652ML_KPBENDULML2  15.917555  10.548731  11.019208  14.592388  2.644401
2  BDG652ML_KPBENDULML3  24.957360  21.122519  21.197216  24.950549  2.190731

如果要添加两个列assign是您的朋友,因为meanstd只需要从原始数字列计算:

df = df.assign(std=df.std(axis=1), mean=df.mean(axis=1))
print (df)

               CellName   Apr-2018   Feb-2018   Jan-2018   Mar-2018       std  \
0  BDG652ML_KPBENDULML1   9.450841  24.119474  27.091426  17.527006  7.828126   
1  BDG652ML_KPBENDULML2  15.917555  10.548731  11.019208  14.592388  2.644401   
2  BDG652ML_KPBENDULML3  24.957360  21.122519  21.197216  24.950549  2.190731   

        mean  
0  19.547187  
1  13.019470  
2  23.056911