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

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

Susan Sarandon
發布: 2024-11-19 06:45:03
原創
366 人瀏覽過

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板