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