替换一系列熊猫中的值

时间:2018-08-30 20:03:45

标签: python regex pandas replace series

为什么要替换一个值,我必须使用以下代码块:

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

为什么我不能使用这个:

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

我已经看到其他人在没有传递字符串方法的情况下使用了方法二。 我的问题是我可以通过使用replace函数的一系列方法,代码行是什么?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

str.replace默认会进行基于正则表达式的替换,该替换也可用于部分匹配。除非replace标志设置为true,否则默认情况下,regex(OTOH)将仅基于完全匹​​配执行替换。

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