Pandas处理数据时replace方法失效

BUG复现

1
train.replace('%', '', inplace=True)

使用replace函数的目的是:在清洗房价数据时替换掉不需要的单位,如“%”,“元/m²/月”等。但在使用函数时发现无法生效,查了网上相关信息后试了多种方法也无法解决这个问题,如先取列之后再进行replace。

1
train["landscapingRatio"].replace('%', '', inplace=True)

原因推测

dataframe中每个列中值的dtypes不同,导致无法replace。

解决方法

使用map()和lambda函数

1
train["landscapingRatio"] = train["landscapingRatio"].map(lambda x: x.replace('%', ''))

map() 会根据提供的函数对指定序列做映射。
第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。