重命名Pandas中的"None"值
这可能看起来很简单,但我就是找不到答案。我使用GeoPandas从一个形状文件导入数据,然后把它转成pandas的DataFrame
。里面有一个字段是对象类型,包含三位字母的代码,还有一些None
值表示缺失的数据。我想把这些None
值改成类似“vcv”的东西,在pandas里该怎么做呢?我试过这个
sala.replace(None,"vcv")
结果出现了这个错误
2400 "strings or regular expressions, you "
2401 "passed a"
-> 2402 " {0!r}".format(type(regex).__name__))
2403 return self.replace(regex, value, inplace=inplace, limit=limit,
2404 regex=True)
TypeError: 'regex' must be a string or a compiled regular expression or a list or dict of strings or regular expressions, you passed a 'bool'
我又试了这个
if sala['N10'] is None:
sala['N10'] = 'Nul'
但是没有任何变化。
1 个回答
16
最简单的方法就是:
sala['N10'].replace('None', 'vcv', inplace=True)
这样应该就能解决问题。
如果它们是真正的 NaN
值,那么调用 fillna
就会有效果。
比如:
sala['N10'].fillna(value='vcv', inplace = True)
还有我在评论中提到的建议:
sala.loc[sala['N10'].isnull(), 'N10'] = 'vcv'