web-dev-qa-db-ja.com

pandasの句読点を削除

code: df['review'].head()
        index         review
output: 0      These flannel wipes are OK, but in my opinion

データフレームの列から句読点を削除して、新しい列を作成します。

code: import string 
      def remove_punctuations(text):
          return text.translate(None,string.punctuation)

      df["new_column"] = df['review'].apply(remove_punctuations)

Error:
  return text.translate(None,string.punctuation)
  AttributeError: 'float' object has no attribute 'translate'

私はpython 2.7を使用しています。提案があれば参考になります。

10
vikky

Pandas str.replace および正規表現を使用:

df["new_column"] = df['review'].str.replace('[^\w\s]','')
21
Bob Haffner

stringモジュールの句読点リストを使用して正規表現を作成できます。

df['review'].str.replace('[{}]'.format(string.punctuation), '')
9
David C

String.punctuationをループすることで問題を解決しました

def remove_punctuations(text):
    for punctuation in string.punctuation:
        text = text.replace(punctuation, '')
    return text

関数を呼び出したときと同じ方法で呼び出すことができ、機能するはずです。

df["new_column"] = df['review'].apply(remove_punctuations)
3
Arthur Gouveia