为了账号安全,请及时绑定邮箱和手机立即绑定

熊猫替换元素不起作用

熊猫替换元素不起作用

忽然笑 2019-10-21 15:16:27
我查找了这个问题,大多数问题是针对更复杂的替换。但是对于我来说,我有一个非常简单的数据框作为测试虚拟对象。目的是用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


查看完整回答
反对 回复 2019-10-21
?
富国沪深

TA贡献1790条经验 获得超9个赞

使用时,df.replace()它会创建一个新的临时对象,但不会修改您的临时对象。您可以使用以下两行之一来修改df:


df = df.replace('white', np.nan)

df.replace('white', np.nan, inplace = True)


查看完整回答
反对 回复 2019-10-21
  • 3 回答
  • 0 关注
  • 345 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信