Heim >Backend-Entwicklung >Python-Tutorial >Was ist der schnellste Weg, Satzzeichen aus einem Pandas-DataFrame zu entfernen?

Was ist der schnellste Weg, Satzzeichen aus einem Pandas-DataFrame zu entfernen?

Susan Sarandon
Susan SarandonOriginal
2024-11-19 06:45:03346Durchsuche

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

Schnelle Entfernung von Satzzeichen mit Pandas

Die Entfernung von Satzzeichen ist eine häufige Textbereinigungsaufgabe. Obwohl pandas str.replace eine weit verbreitete Methode ist, ist sie für große Datenmengen möglicherweise nicht leistungsfähig genug.

Alternativen zu str.replace:

  • regex.sub: Verwendet das re-Modul, um eine regex-basierte Ersetzung durchzuführen. Diese Option bietet eine verbesserte Leistung gegenüber str.replace.
  • str.translate: Nutzt die C-implementierte str.translate-Funktion, was zu erheblichen Geschwindigkeitsverbesserungen führt.

Benchmarks:

  • str.translate weist die beste Leistung auf, gefolgt von regex.sub und dann str.replace.
  • Der Leistungsunterschied wird mit zunehmender Leistung größer Datensatzgröße.

Überlegungen:

  • regex.sub und str.translate können keine NaN-Werte im DataFrame verarbeiten.
  • str.translate erfordert eine besondere Behandlung, wenn die Daten Zeichen enthalten, die durch den standardmäßigen Interpunktionsausschluss ausgeschlossen werden können.

Code:

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

Das obige ist der detaillierte Inhalt vonWas ist der schnellste Weg, Satzzeichen aus einem Pandas-DataFrame zu entfernen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn