Python Pandas-df.fillna(df.mean())不处理多索引数据帧

Python Pandas-df.fillna(df.mean())不处理多索引数据帧,python,pandas,Python,Pandas,这是我的密码: df.head(20) df = df.fillna(df.mean()).head(20) 结果如下: 有很多 我想用平均数替换NaN,我使用了df.fillnadf.mean,但没用 有什么问题吗 数据帧中的每列在第0行和第1行中至少有一个非数值。当您将.mean应用于数据帧时,它将跳过案例中的所有非数字列,即所有列。因此,NAN不会被替换。解决方案:删除非数字行。我找到了!!在替换NaN编号之前,我首先需要重置索引。 代码如下: df = df.reset_index()

这是我的密码:

df.head(20)
df = df.fillna(df.mean()).head(20)
结果如下:

有很多

我想用平均数替换NaN,我使用了df.fillnadf.mean,但没用


有什么问题吗

数据帧中的每列在第0行和第1行中至少有一个非数值。当您将.mean应用于数据帧时,它将跳过案例中的所有非数字列,即所有列。因此,NAN不会被替换。解决方案:删除非数字行。

我找到了!!在替换NaN编号之前,我首先需要重置索引。 代码如下:

df = df.reset_index()
df = df.fillna(df.mean())
现在一切都好了

这对我有用

for i in df.columns:
  df.fillna(df[i].mean(),inplace=True)

我认为问题可能是您的列不是float或int类型。检查df.dtypes。如果返回对象,则表示不起作用。使用df.astype更改类型

请求社区关闭此问题,因为此问题已经解决。@JoeFerndz关闭问题并不意味着它有解决方案。一个问题只有在出现问题时才会被关闭,并且在当前状态下不应该被回答。@ModusTollens,2018年3月22日boure Li的回复称它有效。不幸的是,自那以后,这家公司一直没有关闭。如果我们想保持开放,一切都好。@JoeFerndz也许你说的是接受答案?问题不会在堆栈溢出时被回答而关闭,关闭问题在该站点上意味着非常具体的事情:某个问题在其当前状态下是离题的或不可回答的。所以我不确定你在评论什么。@JoeFerndz看起来像是一个评论