在数据框中的均值计算中不包括空单元格

时间:2018-09-26 16:50:28

标签: python pandas dataframe nan

我正在从excel文件中读取一个值表作为pandas数据框,其中某些单元格为空,因为缺少某些数据。我需要计算每行的平均值,但是空单元格被读取为零,因此包含在计算中,这会产生误导。如何在不包含空单元格的情况下计算平均值?我发现只有当表格以字符串表格形式读取时,空单元格才能读取为“ Nan”,但是我需要数字。有帮助吗?

感谢!

2 个答案:

答案 0 :(得分:2)

任何NaN值均不应计入平均值。尝试用np.nan替换缺失值,然后重复平均值计算。如果它们当前为零,请尝试:

df.replace(0.0, np.nan, inplace=True)
df.mean()

答案 1 :(得分:0)

这是将零单元格替换为零的方法。

>>> df = pd.DataFrame(dict(A=['2', 'hello'], B=['', '3']))
>>> df
       A  B
0      2
1  hello  3
>>> def convert_fill(df):
...     return df.stack().apply(pd.to_numeric, errors='ignore').fillna(0).unstack()
...
>>> convert_fill(df)
       A  B
0      2  0
1  hello  3

df [〜pd.isnull(df)]确实很棒,它只能得到非空单元格。

>>> print(df[~pd.isnull(df)])
       A  B
0      2
1  hello  3