我有一个数据框df
,
import pandas as pd
df = pd.DataFrame(
{
"ID": [1, 2, 3, 4, 5],
"name": [
"Hello Kitty",
"Hello Puppy",
"It is an Helloexample",
"for stackoverflow",
"Hello World",
],
}
)
看起来像:
ID name
0 1 Hello Kitty
1 2 Hello Puppy
2 3 It is an Helloexample
3 4 for stackoverflow
4 5 Hello World
我有一个字符串列表
To_remove_list
To_remove_lst = ["Hello", "for", "an", "It"]
我需要从
name
的df
列中删除列表中存在的所有字符串。如何在 Pandas 中做到这一点?我的预期答案是:
ID name
0 1 Kitty
1 2 Puppy
2 3 is example
3 4 stackoverflow
4 5 World
最佳答案
我想需要 str.replace
如果还想删除子字符串:
df['name'] = df['name'].str.replace('|'.join(To_remove_lst), '')
如果可能的话,一些正则表达式字符:
import re
df['name'] = df['name'].str.replace('|'.join(map(re.escape, To_remove_lst)), '')
print (df)
ID name
0 1 Kitty
1 2 Puppy
2 3 is example
3 4 stackoverflow
4 5 World
但是,如果只想删除单词,请使用嵌套列表理解:
df['name'] = [' '.join([y for y in x.split() if y not in To_remove_lst]) for x in df['name']]
关于python - 如何从 Pandas 的列中删除列表中存在的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51666374/