Pandas的replace()方法不起作用?尝试这个简单的修复
当尝试使用replace()方法替换Pandas DataFrame中的字符串时,可能会遇到一个令人费解的问题,即没有发生替换。与复杂的替换相比,这种情况通常涉及简单的替换尝试。
为了说明这一点,让我们检查以下数据框:
d = {'color' : pd.Series(['white', 'blue', 'orange']), 'second_color': pd.Series(['white', 'black', 'blue']), 'value' : pd.Series([1., 2., 3.])} df = pd.DataFrame(d)
当我们尝试将所有出现的“白色”替换为NaN,令人惊讶的是,没有任何反应:
df.replace('white', np.nan)
输出保持不变:
color second_color value 0 white white 1 1 blue black 2 2 orange blue 3
那么,出了什么问题?
事实证明,replace()方法默认执行完全替换搜索。要启用部分替换,我们需要将 regex 参数设置为 True:
df.replace('white', np.nan, regex=True)
或者,我们可以使用 str.replace() 方法,该方法可以更好地控制替换过程:
df['color'].str.replace('white', np.nan)
额外提示:如果您正在考虑使用 inplace=True 就地执行替换,请务必了解其注意事项。
以上是为什么我的 Pandas `replace()` 方法不能用于简单的字符串替换?的详细内容。更多信息请关注PHP中文网其他相关文章!