簡體   English   中英

Pandas - df.fillna(df.mean()) 不適用於多索引 DataFrame

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM