大熊猫的平均值计算,不包括零

Gab*_*iel 11 python pandas

有没有直接的方法来计算pandas中数据帧列的平均值,但没有考虑零值作为值的数据?像.mean()函数中的参数一样?目前这样做是这样的:

x = df[df[A]!=0]
x.mean()
Run Code Online (Sandbox Code Playgroud)

小智 21

它还取决于数据中0的含义.

  • 如果这些确实是'0'值,那么你的方法是好的
  • 如果'0'是未测量值的占位符(即'NaN'),那么首先用'NaN'替换所有'0'事件可能更有意义.默认情况下,平均值的计算不包括NaN值.

    df = pd.DataFrame([1, 0, 2, 3, 0], columns=['a'])
    df = df.replace(0, np.NaN)
    df.mean()
    
    Run Code Online (Sandbox Code Playgroud)

  • 您可以利用`df.replace()`创建一个新序列并且不能就地操作这一事实:`df.loc [“ Means”,“ myCol”] = df [“ myCol”]。replace(0 ,np.nan).mean(skipna = True)`这是我用来计算非零均值并将其放置在列的末尾而不影响我现有的df值的原因(因为我希望它们保持为0而不是南) (2认同)