如何在pandas中替换数据帧中的多个字符?

时间:2016-02-17 13:09:11

标签: python pandas

我有这样一个数据框:

#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。你有什么好主意来解决这个问题吗?提前谢谢!

为什么所有的空间都消失了?你可以帮帮我吗?提前谢谢!

1 个答案:

答案 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