组合替换熊猫列中的字符串[重复]

Posted

技术标签:

【中文标题】组合替换熊猫列中的字符串[重复]【英文标题】: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) 没有任何反应

【问题讨论】:

【参考方案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

【讨论】:

感谢解决方案,相关线程中的其他逻辑对我不起作用,这个正在工作并跳过一些行

以上是关于组合替换熊猫列中的字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用熊猫替换列中的值时出错[重复]

将熊猫列中的整数值转换为字符串[重复]

熊猫:将列中的列表拆分为多行[重复]

用列/系列中的值替换熊猫子字符串

替换熊猫数据框系列中的每个值[重复]

在熊猫数据框中组合字符串在while-if-elif循环中只工作一次[重复]