为什么 df['column_name'].replace(a_value, np.nan) 不起作用?



在我的数据中,缺失值输入为1900。我想把它们拿出来,以免搞砸我的平均值和其他统计数据......我尝试了以下方法,它什么也没做...

df['bd_year'] = df['bd_year'].replace(1900, np.nan)

我在下面写了一个小函数,效果很好。但我仍然想了解为什么df.replace()根本没有更改我的数据(没有错误消息(。

df['bd_year'] = df['bd_year'].astype(str)
def data_error (row):
    if row['bd_year'].startswith('1900'):
        return None
    return row['bd_year']
df['bd_year']=df.apply(lambda row:data_error(row), axis=1)

startswith 是一个在字符串上运行的函数,这意味着数据类型必须是字符串(在本例中为对象(。因此,您必须在查询两边加上引号:

df['bd_year'] = df['bd_year'].replace("1900", np.nan)
df[['HCVVirus','BloodTransfusion','Hemodialysis','Syringers']] = df[['HCVVirus','Hemodialysis','BloodTransfusion','Syringers']].replace(0,np.NaN)

最新更新