【问题标题】:Python3.x Pandas mean and std returning NANPython3.x Pandas 均值和标准返回 NAN
【发布时间】:2018-05-28 01:36:09
【问题描述】:

遇到这个我无法解决的问题,我有一个大数据框(示例发布在下面),有 5 列。我想计算每行的标准和平均值。不知何故,它一直返回 NaN。

   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)

我也试过了:

df['mean'] = df.iloc[:,1:].mean(numeric_only =True)

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

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

【问题讨论】:

  • df_MOE 是什么?
  • 对不起,错字,在我的实际代码中是df_MOE,更新上面的代码。

标签: python pandas mean


【解决方案1】:

使用参数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  

【讨论】:

    猜你喜欢
    • 2015-07-09
    • 2016-04-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多