在我的数据中,缺失值输入为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)