[英]Pandas - df.fillna(df.mean()) not working on multiindex DataFrame
這是我的代碼:
df.head(20)
df = df.fillna(df.mean()).head(20)
結果如下:
有很多NaN
。
我想用平均數替換NaN
,我使用了df.fillna(df.mean())
,但沒用。
有什么問題??
我已經收到了!! 在替換 NaN 數之前,我首先需要重置索引。 下面是代碼:
df = df.reset_index()
df = df.fillna(df.mean())
現在一切正常!
DataFrame 中的每一列至少有一個非數字值(在行 #0 和部分 #1 中)。 當您將.mean()
應用於 DataFrame 時,它會跳過所有非數字列(在您的情況下,所有列)。 因此, NaN
不會被替換。 解決方案:刪除非數字行。
這對我有用
for i in df.columns:
df.fillna(df[i].mean(),inplace=True)
我認為問題可能是您的列不是 float 或 int 類型。 檢查 df.dtypes。 如果返回對象則意味着將不起作用。 使用 df.astype() 更改類型
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.