如何将Pandas数据框中的问号替换为缺失值?

3
这是我使用的代码:
diabetic_df.replace({'weight': {'?': ""}}, regex=False)

然而,当我运行下面的代码时,它并不显示为缺失值。
diabetic_df.isnull().sum()

您能否指导我做错了什么?


(该内容翻译为中文:您能否指导我做错了什么?)

1
尝试使用以下代码:df.replace('?',np.nan) - Pyd
1
@pyd 把你的评论作为答案添加 :) - Anatolii
添加了,@user1055395 - Pyd
我尝试使用diabetic_df.replace('?',np.nan)进行替换,并且成功将所有的“?”替换为NaN。但是,当我运行diabetic_df.isnull().sum()命令时,所有属性仍然显示没有缺失值。我是否还漏掉了其他事项? - KayPong
谢谢。已经搞定了! - KayPong
2个回答

1
你正在将其替换为空字符串而不是NaN 试试这个,
import numpy as np

diabetic_df.replace({'weight': {'?': np.nan}}, regex=False,inplace=True)
diabetic_df.isnull().sum()

感谢。它至少将缺失值显示为NaN。但是,当我运行diabetic_df.isnull().sum()时,体重仍然显示为零缺失值。 - KayPong
我已添加了“inplace”,请尝试最新的编辑并查看。 - Pyd
1
我已经得到了它 df2 = diabetic_df.replace('?',np.nan )
df2.isnull().sum()
- KayPong

1
有时候像Informatica或HANA这样的系统生成的文件中会带有问号和空格。
首先,您需要在数据框中去掉空格。
temp_df_trimmed = temp_df.apply(lambda x: x.str.strip() if x.dtype == "object" else x)

之后将该函数应用于替换数据。
temp_df_trimmed['RC'] = temp_df_trimmed['RC'].map(lambda x: np.nan if x=="?"  else x)

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接