我试图用np.nan替换数据集中的问号:

我尝试使用以下代码:

df['Workclass'] = [row if row!='?' else np.nan for row in df['Workclass']]


和这个:

df['Workclass'] = df['Workclass'].map(lambda x: np.nan if x=="?"  else x)


和这个:

df['Workclass'] = df['Workclass'].replace(to_replace =['?'], value = np.nan, regex = True)


但是这些解决方案似乎都不能改变列中问号的频率。

python - 用np.nan替换问号-LMLPHP

最佳答案

尝试这个:

df['Workclass'].apply(lambda x: np.nan if x == '?' else x)


如果可行:

df['Workclass'] = df['Workclass'].apply(lambda x: np.nan if x == '?' else x)


如果您要查找“?”您可以在字符串中的任何位置使用此命令:

df['Workclass'].apply(lambda x: np.nan if str(x).find('?')>-1 else x)

10-08 05:14