首頁 >後端開發 >Python教學 >從 Pandas DataFrame 中刪除標點符號的最快方法是什麼?

從 Pandas DataFrame 中刪除標點符號的最快方法是什麼?

Susan Sarandon
Susan Sarandon原創
2024-11-19 06:45:03380瀏覽

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。
  • 效能差距隨著增加而拉大資料集大小。

注意事項:

  • regex.sub 和 str.translate 無法處理 DataFrame 中的 NaN 值。
  • 當資料包含預設標點符號排除可能排除的字元時,str.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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn