【问题标题】:Combine replacement of strings in pandas column [duplicate]组合替换熊猫列中的字符串[重复]
【发布时间】:2020-04-08 18:59:23
【问题描述】:

我有一个如下形式的数据框:

df
Text

Apple
Banana
Ananas
...

我想替换几个字符串,但其中一些字符串之后会有相同的输出。所以现在我正在使用:

df['Text'] = df['Text'].replace('Apple', 'Germany', regex=True)
df['Text'] = df['Text'].replace('Banana', 'South America', regex=True)
df['Text'] = df['Text'].replace('Ananas', 'South America', regex=True)

这会导致预期的结果:

df
Text

Germany
South America
South America
...

但是命令行变得有些混乱,有没有更聪明的方法呢?比如:df['Text'] = df['Text'].replace('Ananas' or 'Banana', 'South America', regex=True)

如果我尝试,这个逻辑:Regex match one of two words

df['Text'] = df['Text'].replace(/^(Ananas|Banana)$/', 'South America', regex=True) 没有任何反应

【问题讨论】:

    标签: python regex pandas


    【解决方案1】:

    尝试使用单行字典:

    df['Text'] = df['Text'].replace({'Apple': 'Germany', 'Banana': 'South America', 'Ananas': 'South America'}, regex=True)
    

    现在:

    print(df)
    

    是:

                Text
    0        Germany
    1  South America
    2  South America
    

    【讨论】:

    • 感谢解决方案,相关线程中的其他逻辑对我不起作用,这个正在工作并跳过一些行
    猜你喜欢
    • 2019-11-23
    • 2021-07-11
    • 2019-06-03
    • 2017-03-12
    • 2019-02-06
    • 2021-05-15
    • 1970-01-01
    • 1970-01-01
    • 2020-03-07
    相关资源
    最近更新 更多