我正在从 excel 文件中读取一个值表作为熊猫数据帧,其中一些单元格是空的,因为缺少一些数据。我需要计算每行的平均值,但空单元格被读取为零,因此包含在计算中,这是误导性的。如何在不包括空单元格的情况下计算平均值?我发现只有当表被读取为字符串表时,空单元格才能被读取为"Nan",但我需要数字。有什么帮助吗?
谢谢!
任何 NaN 值都不应计入平均值。尝试用np.nan
替换缺失值,然后重复均值计算。如果它们当前为零,请尝试:
df.replace(0.0, np.nan, inplace=True)
df.mean()
这就是用零替换空单元格的方法。
>>> 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