我试图填充包含多列和多行的数据框中的所有nans . 我正在使用它来训练多变量ML模型,所以我想用中位数填充每列的nans . 为了测试中位数函数,我做了这个:
training_df.loc[[0]] = np.nan # Sets first row to nan
print(training_df.isnull().values.any()) # Prints true because we just inserted nans
test = training_df.fillna(training_df.median()) # Fillna with median
print(test.isnull().values.any()) # Check afterwards
但是当我这样做时没有任何反应,最后一行的打印仍然返回True . 如果我尝试更改为使用这样的中值函数:
training_df.fillna(training_df.median(), inplace=True)
没有任何事情发生 . 如果我这样做:
training_df = training_df.fillna(training_df.median(), inplace=True)
Training_df变为无 . 我怎么解决这个问题?
1 回答
正如@thesilkworm建议的那样,首先将你的系列转换为数字 . 以下是一个最小的例子: