Pandas Dataframe TypeError:translate()仅接受一个参数(给定2个)

时间:2019-01-31 03:44:54

标签: python pandas python-2.7 dataframe

我正在尝试删除熊猫数据框的标点符号和数字。这是我的代码示例:

import re
import string
df.text = df.text.apply(lambda x: x.lower())
df.text = df.text.apply(lambda x: x.translate(None, string.punctuation))

它给我错误:

  

TypeError:translate()仅接受一个参数(给定2个参数)

我尝试在翻译中删除“无”,因此它变成:

 df.text = df.text.apply(lambda x: x.translate(string.punctuation))

它没有给我任何错误,但是这段代码并没有删除我想要的标点符号。我正在使用python 2.7。你能帮助我吗 ?预先谢谢你

2 个答案:

答案 0 :(得分:1)

您可以使用熊猫内置的Series.str.translate

In [1]: import pandas as pd

In [2]: df = pd.DataFrame({'text': ['f!!o..o!', 'b""a??r', 'b?.?a!.!z']})

In [3]: df
Out[3]:
        text
0   f!!o..o!
1    b""a??r
2  b?.?a!.!z

In [4]: import string

In [5]: df.text = df.text.str.translate(None, string.punctuation)

In [6]: df
  text
0  foo
1  bar
2  baz

答案 1 :(得分:0)

尝试使用python 2:

owner: ownerId,

make_trans函数使翻译表像字典一样(将键转换为值)