熊猫替换元素不起作用

我查找了这个问题,大多数问题是针对更复杂的替换。但是对于我来说,我有一个非常简单的数据框作为测试虚拟对象。


目的是用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


忽然笑
浏览 346回答 3
3回答

郎朗坤

您需要分配回来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)dfOut[50]:    color second_color  value0     NaN          NaN    1.01    blue        black    2.02  orange         blue    3.0大多数熊猫操作返回一个副本,并且大多数具有参数inplace,通常默认为False

富国沪深

使用时,df.replace()它会创建一个新的临时对象,但不会修改您的临时对象。您可以使用以下两行之一来修改df:df = df.replace('white', np.nan)df.replace('white', np.nan, inplace = True)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python