Python 检查单词是否在序列中,然后将其从字符串中删除
我是Pandas的初学者,我想知道如何为我想执行的以下逻辑操作编写代码 有人能告诉我他们会怎么做吗 如果单词在熊猫系列中,则从数据帧中的字符串中删除该单词 让“A”系列成为熊猫系列,如下所示: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
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]?”是正确的正则表达式,但我需要进行测试。