使用Regex在熊猫中有条件地更改列的值

时间:2018-09-05 22:03:30

标签: python regex python-3.x pandas

我有一个非常简单的问题: 我有一个DataFrame,该列的其中一个称为Criterion。该列采用字符串值,即:

df.Criterion.unique()

Nunca Fiscalizados Y Renuevan Convenio
Nunca Fiscalizados
Nunca Fiscalizado
Others

我想将Nunca FiscalizadoNunca Fiscalizados合并为Nunca Fiscalizados

我在考虑以下方面的事情

df['Criterion']=df['Criterion'].str.replace('Nunca Fiscalizad(o|os)$','Nunca Fiscalizados')

我认为应该这样做,但这不会带来任何改变。 如果我放下$,我将得到:

df.Criterion.unique()

Nunca Fiscalizadoss Y Renuevan Convenio
Nunca Fiscalizadoss
Nunca Fiscalizado
Others

我想念什么?

1 个答案:

答案 0 :(得分:0)

您可以通过互换'o'和'os'的位置来尝试相同的条件。默认条件为第一种可能性并替换字符串。

df.Criterion.apply(lambda x: re.sub(r'Nunca Fiscalizad(o|os)','Nunca Fiscalizados',x))

输出:

0    Nunca Fiscalizadoss Y Renuevan Convenio
1                        Nunca Fiscalizadoss
2                         Nunca Fiscalizados
3                                     Others

使用正则表达式

df.Criterion.apply(lambda x: re.sub(r'Nunca Fiscalizad(os|o)','Nunca Fiscalizados',x))

输出:

0    Nunca Fiscalizados Y Renuevan Convenio
1                        Nunca Fiscalizados
2                        Nunca Fiscalizados
3                                    Others