Ausführliche Erläuterung von Beispielen zum Bereinigen von Zeichenfolgen in Python

Y2J
Freigeben: 2017-05-10 12:00:30
Original
2270 Leute haben es durchsucht

In diesem Artikel werden hauptsächlich relevante Informationen zur String-Verarbeitung der Python-Datenbereinigung vorgestellt.

Vorwort

Die Datenbereinigung ist ein Komplex und mühsame (kubi) Arbeit, es ist auch das wichtigste Glied im gesamten Datenanalyseprozess. Manche Leute sagen, dass 80 % der Zeit eines Analyseprojekts darin besteht, Daten zu bereinigen. Das klingt seltsam, trifft aber auf die tatsächliche Arbeit zu. Es gibt zwei Zwecke der Datenbereinigung. Der erste besteht darin, die Daten durch die Bereinigung verfügbar zu machen. Die zweite besteht darin, die Daten für die spätere Analyse besser geeignet zu machen. Mit anderen Worten: Es gibt „schmutzige“ Daten, die gelöscht werden müssen, und saubere Daten, die ebenfalls gelöscht werden müssen.

Bei der Datenanalyse, insbesondere bei der Textanalyse, erfordert die Zeichenverarbeitung viel Energie, daher ist das Verständnis der Zeichenverarbeitung auch eine sehr wichtige Fähigkeit für die Datenanalyse.

String-Verarbeitungsmethoden

Lassen Sie uns zunächst die grundlegenden Methoden verstehen.

Zuerst Alle, lasst es uns verstehen. Die folgende String-Aufteilungsmethode

str='i like apple,i like bananer'
print(str.split(','))
Nach dem Login kopieren

führt zur Aufteilung der Zeichenkette durch Kommas:

['i like apple', 'i like bananer']

print(str.split(' '))
Nach dem Login kopieren

Das Ergebnis der Aufteilung nach Leerzeichen:

['i', 'like', 'apple,i', 'like', 'bananer']

print(str.index(','))
print(str.find(','))
Nach dem Login kopieren

Beide Suchergebnisse sind:

12

Wenn nicht gefunden, gibt der Index einen Fehler zurück und die Suche gibt -1 zurück

print(str.count('i'))
Nach dem Login kopieren

Das Ergebnis ist:

4

connt wird verwendet, um die Häufigkeit der Zielzeichenfolge zu zählen

print(str.replace(',', ' ').split(' '))
Nach dem Login kopieren

Das Ergebnis ist:

['i', 'like', 'apple', 'i', 'like', 'bananer']

Hier ersetzt ersetzen Kommas durch Leerzeichen, Verwenden Sie Leerzeichen, um die Zeichenfolge aufzuteilen, gerade genug, um jedes Wort herauszunehmen.

Zusätzlich zu herkömmlichen Methoden ist das leistungsfähigere Zeichenverarbeitungstool Regulärer Ausdruck nichts anderes als.

Reguläre Ausdrücke

Bevor wir reguläre Ausdrücke verwenden, müssen wir die vielen Methoden in regulären Ausdrücken verstehen.

Lassen Sie mich die Verwendung der nächsten Methode betrachten. Verstehen Sie zunächst den Unterschied zwischen den Übereinstimmungs- und Suchmethoden

str = "Cats are smarter than dogs"
pattern=re.compile(r'(.*) are (.*?) .*')
result=re.match(pattern,str)

for i in range(len(result.groups())+1):
 print(result.group(i))
Nach dem Login kopieren

Das Ergebnis ist:

Katzen sind schlauer als Hunde
Katzen
schlauer

Bei dieser Form der Pettern-Matching-Regel sind die Rückgabeergebnisse der Match- und Suchmethoden die gleich

Wenn Sie zu diesem Zeitpunkt das Muster in

pattern=re.compile(r'are (.*?) .*')
Nach dem Login kopieren

ändern, wird keine Übereinstimmung zurückgegeben und das Suchergebnis lautet:

sind schlauer als Hunde
klüger

Als nächstes lernen wir den Einsatz anderer Methoden kennen

str = "138-9592-5592 # number"
pattern=re.compile(r'#.*$')
number=re.sub(pattern,'',str)
print(number)
Nach dem Login kopieren

Das Ergebnis ist:

138- 9592-5592

Das Obige dient dazu, die Nummer zu extrahieren, indem der Inhalt nach dem #-Zeichen durch nichts ersetzt wird.

Wir können den Querstrich der Zahl weiter ersetzen

print(re.sub(r'-*','',number))
Nach dem Login kopieren

Das Ergebnis ist:

13895925592

Wir können auch die Suchmethode verwenden, um die gefundene Zeichenfolge auszudrucken

str = "138-9592-5592 # number"
pattern=re.compile(r'5')
print(pattern.findall(str))
Nach dem Login kopieren

Das Ergebnis ist:

['5', '5', '5']

Der Gesamtinhalt regulärer Ausdrücke ist relativ umfangreich und wir müssen die Regeln für den Abgleich von Zeichenfolgen ausreichend verstehen. Im Folgenden sind die spezifischen Abgleichsregeln aufgeführt.

Vektorisierte ZeichenfolgeFunktion

Beim Bereinigen der verstreuten Daten, die analysiert werden sollen, ist dies häufig erforderlich Führen Sie einige Arbeiten zur String-Normalisierung durch.

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
 'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
print(data)
Nach dem Login kopieren

Das Ergebnis ist:

Sie können durch einige Integrationsmethoden eine vorläufige Beurteilung der Daten vornehmen, z Die Daten enthalten die Schlüsselwörter

print(data.str.contains('@'))
Nach dem Login kopieren

. Das Ergebnis lautet:

Sie können die Zeichenfolge auch teilen und die erforderliche Zeichenfolge extrahieren

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
     'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
pattern=re.compile(r'(\d*)@([a-z]+)\.([a-z]{2,4})')
result=data.str.match(pattern) #这里用fillall的方法也可以result=data.str.findall(pattern)
print(result)
Nach dem Login kopieren

Das Ergebnis ist:

chen [(8622, xinlang, com)]
li [(120, qq, com)]
sun [(5243, gmail, com )]
wang [(5632, qq, com)]
zhao NaN
dtype: object

Um zu diesem Zeitpunkt beizutreten, müssen wir extrahieren die Vorderseite der E-Mail-Adresse. Der Name

print(result.str.get(0))
Nach dem Login kopieren

ergibt:

oder den Domainnamen, zu dem die E-Mail-Adresse gehört

print(result.str.get(1))
Nach dem Login kopieren

führt zu:

Natürlich können Sie es auch durch Slicing extrahieren, aber die Genauigkeit der extrahierten Daten ist nicht hoch

data = pd.Series({'li': '120@qq.com','wang':'5632@qq.com',
    'chen': '8622@xinlang.com','zhao':np.nan,'sun':'5243@gmail.com'})
print(data.str[:6])
Nach dem Login kopieren

Das Ergebnis ist:

Endlich verstehen wir die vektorisierte String-Methode

Zusammenfassung

[Verwandte Empfehlungen ]

1. Python kostenloses Video-Tutorial

2 Python objektorientiertes Video-Tutorial

3 Grundlegendes Einführungs-Tutorial zu Python

Das obige ist der detaillierte Inhalt vonAusführliche Erläuterung von Beispielen zum Bereinigen von Zeichenfolgen in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!