我有这样一个数据框:
#v1 v2 v3 v4 v5
a b b c 1 1 2 2 2 3 3 3 3 4 4 4 4 4 4 ...
....
如您所见,v5
列包含word id
。我有一个word id
列表要删除:
toRve = ['1','3','5'.....]
我写了一个for loop
来删除列表中的word id
:
for i in toRve:
df[v5] = df[v5].str.replace("{0} ".format(i), "")
但我得到了这个结果:
#v1 v2 v3 v4 v5
a b b c 222444444 ...
....
由于22 23
已被视为2
+ 2
+ 23
,因此已将其更改为223
。你有什么好主意来解决这个问题吗?提前谢谢!
为什么所有的空间都消失了?你可以帮帮我吗?提前谢谢!
答案 0 :(得分:1)
您可以使用apply
方法为每个元素运行函数:
import pandas as pd
s = pd.Series([
"1 1 2 2 3 3 4 4 5 5 6 6 6",
"3 4 2 1 2 3 4 4 5 5 4 34 2"
])
todel = set(["1", "3", "5"])
s.apply(lambda x:" ".join(v for v in x.strip().split() if v not in todel))
输出:
0 2 2 4 4 6 6 6
1 4 2 2 4 4 4 34 2
dtype: object