仅当字符串以该单词开头时,才替换数据帧中字符串中的一个单词或一组字母

2024-06-01 12:46:26 发布

您现在位置:Python中文网/ 问答频道 /正文

假设我有以下玩具模型df

Line          Sentence

1             A MAN TAUGHT ME HOW TO DANCE.
2             WE HAVE TO CHOOSE A CAKE. 
3             X RAYS CAN BE HARMFUL.
4             MY HERO IS MALCOLM X FROM THE USA.
5             THE BEST ACTOR IS JENNIFER A FULTON. 
6             A SOUND THAT HAS A BIG IMPACT. 

如果我要做以下事情:

df['Sentence'] = df['Sentence'].str.replace('A ',' ')

这将从所有句子中删除所有字符'A '。但是,我只需要从以'A '开头的字符串句子中删除'A '。类似地,我想从第3行中删除'X ',而不是从第4行的Malcolm X中删除

最终输出df应如下所示:

Line          Sentence

1             MAN TAUGHT ME HOW TO DANCE.
2             WE HAVE TO CHOOSE A CAKE. 
3             RAYS CAN BE HARMFUL.
4             MY HERO IS MALCOLM X FROM THE USA.
5             THE BEST ACTOR IS JENNIFER A FULTON. 
6             SOUND THAT HAS A BIG IMPACT. 

Tags: thetodfishavelinesentencehow
3条回答

您可以使用正则表达式:


df["Sentence"] = df["Sentence"].str.replace(r"^(?:A|X)(?=\s)", "", regex=True)
print(df)

印刷品:

   Line                              Sentence
0     1           MAN TAUGHT ME HOW TO DANCE.
1     2             WE HAVE TO CHOOSE A CAKE.
2     3                  RAYS CAN BE HARMFUL.
3     4    MY HERO IS MALCOLM X FROM THE USA.
4     5  THE BEST ACTOR IS JENNIFER A FULTON.
5     6          SOUND THAT HAS A BIG IMPACT.

str.replace,startofstring,value,空格。代码如下

df.Sentence==df.Sentence.str.replace('^A\s+|^X\s+', '')
       
          

                   Sentence
0          MAN TAUGHT ME HOW TO DANCE.
1            WE HAVE TO CHOOSE A CAKE.
2                 RAYS CAN BE HARMFUL.
3   MY HERO IS MALCOLM X FROM THE USA.
4  HE BEST ACTOR IS JENNIFER A FULTON.
5         SOUND THAT HAS A BIG IMPACT.

使用正则表达式仅匹配字符串的开头:

df['Sentence'] = df['Sentence'].str.replace(r'^([AX] )', '', regex=True)

df

   Line                              Sentence
0     1           MAN TAUGHT ME HOW TO DANCE.
1     2             WE HAVE TO CHOOSE A CAKE.
2     3                  RAYS CAN BE HARMFUL.
3     4    MY HERO IS MALCOLM X FROM THE USA.
4     5  THE BEST ACTOR IS JENNIFER A FULTON.
5     6         SOUND THAT HAS A BIG IMPACT. 

相关问题 更多 >