Python 检查单词是否在序列中,然后将其从字符串中删除

Python 检查单词是否在序列中,然后将其从字符串中删除,python,pandas,jupyter-notebook,data-munging,data-wrangling,Python,Pandas,Jupyter Notebook,Data Munging,Data Wrangling,我是Pandas的初学者,我想知道如何为我想执行的以下逻辑操作编写代码 有人能告诉我他们会怎么做吗 如果单词在熊猫系列中,则从数据帧中的字符串中删除该单词 让“A”系列成为熊猫系列,如下所示: index word 0 foo 1 bar 2 baz 让数据帧“B”成为我们想要修改的数据帧 index string 0 foo bar hello the

我是Pandas的初学者,我想知道如何为我想执行的以下逻辑操作编写代码

有人能告诉我他们会怎么做吗

如果单词在熊猫系列中,则从数据帧中的字符串中删除该单词

让“A”系列成为熊猫系列,如下所示:

index             word
0                 foo
1                 bar
2                 baz

让数据帧“B”成为我们想要修改的数据帧

index    string
0        foo bar hello there
1        foo Lax
2        bar Kay
3        John Smith

期望输出:

0 hello there
1 Lax
2 Kay
3 John Smith

让我们使用
.str来尝试此操作。用使用
join
创建的正则表达式替换

s = pd.Series(['foo','bar','baz'])

df = pd.DataFrame({'string':['foo bar hello there', 'foo Lax', 'bar Kay', 'John Smith']})

df['string'].str.replace('|'.join(s), '')
输出:

0      hello there
1              Lax
2              Kay
3       John Smith
Name: string, dtype: object

让我们使用
.str来尝试此操作。用使用
join
创建的正则表达式替换

s = pd.Series(['foo','bar','baz'])

df = pd.DataFrame({'string':['foo bar hello there', 'foo Lax', 'bar Kay', 'John Smith']})

df['string'].str.replace('|'.join(s), '')
输出:

0      hello there
1              Lax
2              Kay
3       John Smith
Name: string, dtype: object

这将删除剩余的前导空白:

df['string'].str.replace('|'.join(s), '').str.lstrip()

这将删除剩余的前导空白:

df['string'].str.replace('|'.join(s), '').str.lstrip()

A系列中的任何单词或与B系列相同索引对应的单词?A系列中的任何单词或与B系列相同索引对应的单词?谢谢!非常有趣,你能解释一下“|”和联接在这里做什么吗?@jerof
“|”。联接
从s“foo | bar | baz”创建这个字符串,这是一个正则表达式,其中|表示或。谢谢!很清楚,如果其中一个字符串是“foobbarb”,您的方法会改变吗?我想了解的是,当系列“s”中的单词是df['string'中连贯短语/单词的一部分时会发生什么。然后,输出将是“b”,因为foo和bar将被“”替换。您认为有什么方法可以防止这种情况发生吗?您可以将其添加到字符串中或找到一个正则表达式替换项。我认为“foo[b]?”是正确的正则表达式,但我需要进行测试。谢谢!非常有趣,你能解释一下“|”和联接在这里做什么吗?@jerof
“|”。联接
从s“foo | bar | baz”创建这个字符串,这是一个正则表达式,其中|表示或。谢谢!很清楚,如果其中一个字符串是“foobbarb”,您的方法会改变吗?我想了解的是,当系列“s”中的单词是df['string'中连贯短语/单词的一部分时会发生什么。然后,输出将是“b”,因为foo和bar将被“”替换。您认为有什么方法可以防止这种情况发生吗?您可以将其添加到字符串中或找到一个正则表达式替换项。我认为“foo[b]?”是正确的正则表达式,但我需要进行测试。