Rumah >pembangunan bahagian belakang >Tutorial Python >Apakah Cara Terpantas untuk Mengalih Keluar Tanda Baca daripada Pandas DataFrame?

Apakah Cara Terpantas untuk Mengalih Keluar Tanda Baca daripada Pandas DataFrame?

Susan Sarandon
Susan Sarandonasal
2024-11-19 06:45:03425semak imbas

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

Penyingkiran Tanda Baca Pantas dengan Panda

Penyingkiran tanda baca ialah tugas pembersihan teks biasa. Walaupun panda str.replace ialah kaedah yang digunakan secara meluas, ia mungkin tidak cukup berprestasi untuk set data yang besar.

Alternatif untuk str.replace:

  • regex.sub: Menggunakan modul semula untuk melaksanakan penggantian berasaskan regex. Pilihan ini menawarkan prestasi yang lebih baik berbanding str.replace.
  • str.translate: Menggunakan fungsi str.translate yang dilaksanakan C, menghasilkan kelajuan yang ketara penambahbaikan.

Tanda aras:

  • str.translate mempamerkan prestasi terbaik, diikuti oleh regex.sub dan kemudian str.replace.
  • Jurang dalam prestasi semakin melebar dengan set data yang semakin meningkat saiz.

Pertimbangan:

  • regex.sub dan str.translate tidak boleh mengendalikan nilai NaN dalam DataFrame.
  • str .terjemah memerlukan pengendalian khas apabila data mengandungi aksara yang mungkin dikecualikan oleh tanda baca lalai pengecualian.

Kod:

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('|')

Atas ialah kandungan terperinci Apakah Cara Terpantas untuk Mengalih Keluar Tanda Baca daripada Pandas DataFrame?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn