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

时间:2015-10-19 14:55:16

标签: python pandas

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

x = df[df[A]!=0]
x.mean()

3 个答案:

答案 0 :(得分:16)

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

  • 如果这些确实是' 0'值,然后你的方法很好
  • 如果' 0'是一个未测量的值的占位符(即“NaN'”),那么更换所有' 0'事件 与' NaN'第一。默认情况下,平均值的计算不包括NaN 值。

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

答案 1 :(得分:0)

您可以将df转换为numpy数组,并使用numpy.nanmean()

import numpy as np

df = pd.DataFrame(data=np.array([[1, 2], 
                                 [3, 4], 
                                 [6, 7], 
                                 [8, np.nan], 
                                 [np.nan, 11]]), 
                  columns=['A', 'B'])

df_col_means = numpy.nanmean(df.values)  # by columns
df_row_means = numpy.nanmean(df.values, axis=1)  # by rows
col_A_mean = numpy.nanmean(df['A'].values)  # particular column mean 

答案 2 :(得分:-2)

在讨论中很晚,但是您也可以这样做:

df["Column_name"] != 0)].mean()