【问题标题】:Replace values in a series pandas [duplicate]替换一系列熊猫中的值[重复]
【发布时间】:2019-02-05 20:15:45
【问题描述】:

当我想替换一个值时,我必须使用这个代码块:

data['Organization'].str.replace('Greece','Rome')

为什么我不能用这个:

data['Organization'].replace('Greece','Rome').

我以前见过其他人使用方法二而没有传递字符串方法。 我的问题是我可以使用替换函数传递一个系列方法吗?代码行是什么?

【问题讨论】:

    标签: python regex pandas replace series


    【解决方案1】:

    str.replace 默认情况下会进行基于正则表达式的替换,这也适用于部分匹配。 replace,OTOH,默认情况下只会根据完全匹配执行替换,除非 regex 标志设置为 true。

    data['Organization'] = (
        data['Organization'].replace({'Greece': 'Rome'}, regex=True))
    

    【讨论】:

      【解决方案2】:

      pd.Series.replacepd.Series.str.replace 不同:

      这是一个展示差异的最小示例:

      df = pd.DataFrame({'A': ['foo', 'fuz', np.nan]})
      
      df['B'] = df['A'].replace(['foo', 'fuz'], ['food', 'fuzzy'])
      df['C'] = df['A'].str.replace('f.', 'ba', regex=True)
      
      print(df)
      
           A      B    C
      0  foo   food  bao
      1  fuz  fuzzy  baz
      2  NaN    NaN  NaN
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2020-11-15
        • 1970-01-01
        • 2016-05-28
        • 2023-01-26
        • 2022-06-24
        • 2017-02-25
        • 1970-01-01
        相关资源
        最近更新 更多