我查找了这个问题,大多数问题是针对更复杂的替换。但是对于我来说,我有一个非常简单的数据框作为测试虚拟对象。目的是用nan替换数据帧中任何位置的字符串,但这似乎不起作用(即不替换;不存在任何错误)。我试过用另一个字符串替换,它也不起作用。例如d = {'color' : pd.Series(['white', 'blue', 'orange']), 'second_color': pd.Series(['white', 'black', 'blue']), 'value' : pd.Series([1., 2., 3.])}df = pd.DataFrame(d)df.replace('white', np.nan)输出仍然是: color second_color value 0 white white 1 1 blue black 2 2 orange blue 3
3 回答

郎朗坤
TA贡献1921条经验 获得超9个赞
您需要分配回来
df = df.replace('white', np.nan)
或通过参数inplace=True:
In [50]:
d = {'color' : pd.Series(['white', 'blue', 'orange']),
'second_color': pd.Series(['white', 'black', 'blue']),
'value' : pd.Series([1., 2., 3.])}
df = pd.DataFrame(d)
df.replace('white', np.nan, inplace=True)
df
Out[50]:
color second_color value
0 NaN NaN 1.0
1 blue black 2.0
2 orange blue 3.0
大多数熊猫操作返回一个副本,并且大多数具有参数inplace,通常默认为False

富国沪深
TA贡献1790条经验 获得超9个赞
使用时,df.replace()它会创建一个新的临时对象,但不会修改您的临时对象。您可以使用以下两行之一来修改df:
df = df.replace('white', np.nan)
df.replace('white', np.nan, inplace = True)
添加回答
举报
0/150
提交
取消