当前位置: 首页 > 知识库问答 >
问题:

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

子车文康
2023-03-14

我有以下形式的数据帧:

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']。替换('Ananas'或'Banana','South America',regex=True)

如果我尝试,这个逻辑:正则表达式匹配两个单词中的一个

df['Text']=df['Text']。替换(/^(Ananas | Banana)$/','South America',regex=True)

共有1个答案

江志业
2023-03-14

试着用一行字搭配字典:

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
 类似资料:
  • 问题内容: 我有以下数据框 我想更换和使用,所以最终的数据帧 我尝试了以下操作,但没有成功: 问题答案: 解决方案与通过: 如果需要将列中的所有值设置为一些:

  • 给定一个包含项a和B的字符串M,我想用每个a来代替B,用每个B来代替a来代替M'。天真地,人们会尝试用B代替A,然后用A代替B,但在这种情况下,M'只包含A。我可以想到替换这些项,并记录它们的位置,这样这些项就不会再被替换了。当我们只有A和B可以替换时,这是有效的。但是如果我们需要替换两个以上的项,而且它们的长度不同,那么这就变得很棘手了。 所以我想这样做: 我们将M作为输入字符串,并将R=[(x

  • 我有一个熊猫数据框(通过导入csv文件创建)。我想用NaN替换空白值。这些空白值中有些是空的,有些包含(可变数量的)空格,,,等等。 使用这个线程中的建议 它会替换所有只包含空格的字符串,但也会替换每个包含空格的字符串,这不是我想要的。 如何仅用空格和空字符串替换字符串?

  • 我有一个字符串“ECET”,我想创建所有可能的字符串,其中我用“X”替换一个或多个字母(除第一个外)。 在这种情况下,我的结果是: 关于如何处理这个问题有什么想法吗? 这不仅仅是创建“X”的可能组合/排列,还包括如何将它们与现有字符串组合。

  • 问题内容: 我有一份高中清单。我想从字符串中删除某些字符,单词和符号。 我目前有: 不过,我想用一个列表,以便我能快捷地更换,,,等。 有什么建议? 不起作用 问题答案: 使用正则表达式(用分隔字符串):

  • 如何删除字符串中任意位置的圆括号?