我有一个DataFrame
,带有一些NaN值,我想适合我的DataFrame的平均值
data.fillna(data.mean())
然后,我检查是否还有NaN或空值
print('is nan', data.isna().values.any()) #prints True
print('is null', data.isnull().values.any()) #prints True
在打印之前是真实的,我不明白,因为应该填充NaN值。
我想念什么吗?
答案 0 :(得分:2)
尝试此操作以更改您的数据框:
data.fillna(data.mean(), inplace=True)
或者执行此操作以创建一个新的数据框,并用data.mean()
替换NaN:
data_new = data.fillna(data.mean())
答案 1 :(得分:1)
这是一个可复制的示例。
import pandas as pd
# generate sample dataframe some filled with NaN
data = pd.DataFrame([[1, 2], [np.nan, 4], [5, 6], [7, np.nan]], columns=["A", "B"])
# apply per-column and substitue the mean of that columns
data.apply(lambda x: x.fillna(x.mean()),axis=1)