ホームページ >バックエンド開発 >Python チュートリアル >Pandas DataFrame から句読点を削除する最速の方法は何ですか?

Pandas DataFrame から句読点を削除する最速の方法は何ですか?

Susan Sarandon
Susan Sarandonオリジナル
2024-11-19 06:45:03367ブラウズ

What is the Fastest Way to Remove Punctuation from a Pandas DataFrame?

Pandas による高速句読点削除

句読点の削除は、一般的なテキスト クリーニング タスクです。 pandas str.replace は広く使用されているメソッドですが、大規模なデータセットに対しては十分なパフォーマンスが得られない可能性があります。

str.replace の代替:

  • regex.sub: re モジュールを使用して正規表現ベースの置換を実行します。このオプションは、str.replace.
  • str.translate: よりもパフォーマンスが向上します。C で実装された str.translate 関数を利用するため、速度が大幅に向上します。

ベンチマーク:

  • str.translate が最高のパフォーマンスを示し、次に regex.sub、str.replace が続きます。
  • データセットが増加するとパフォーマンスの差が拡大するsize.

考慮事項:

  • regex.sub および str.translate は DataFrame.
  • str の NaN 値を処理できません。 .translate は、デフォルトの句読点によって除外される可能性のある文字がデータに含まれている場合、特別な処理を必要とします。除外。

コード:

import pandas as pd
import re

# Regex.sub
df['text'] = [re.compile(r'[^\w\s]+').sub('', x) for x in df['text'].tolist()]

# str.translate
punct = '!"#$%&\'()*+,-./:;<=>?@[\]^_`{|}~'
transtab = str.maketrans(dict.fromkeys(punct, ''))
df['text'] = '|'.join(df['text'].tolist()).translate(transtab).split('|')

以上がPandas DataFrame から句読点を削除する最速の方法は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。