Heim > Backend-Entwicklung > Python-Tutorial > Wie teile ich eine Pandas DataFrame-String-Spalte in zwei Spalten auf?

Wie teile ich eine Pandas DataFrame-String-Spalte in zwei Spalten auf?

Mary-Kate Olsen
Freigeben: 2024-12-24 04:41:18
Original
573 Leute haben es durchsucht

How to Split a Pandas DataFrame String Column into Two Columns?

Wie teilt man eine Datenrahmen-Stringspalte in zwei Spalten auf?

Bei der Arbeit mit Tabellendaten ist es oft notwendig, die zu extrahierenden Daten zu manipulieren spezifische Informationen. Eine häufige Aufgabe besteht darin, eine einzelne Spalte mit Zeichenfolgenwerten in mehrere Spalten aufzuteilen, die jeweils einen Teil der ursprünglichen Zeichenfolge enthalten.

Problem und Anforderung

Angenommen, wir haben einen DataFrame mit dem Namen df mit einer Spalte namens row, die Zeichenfolgenwerte im folgenden Format enthält:

          row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL
Nach dem Login kopieren

Unser Ziel ist es, die Zeilenspalte in zwei neue Spalten aufzuteilen: fips und Zeile, wobei fips die ersten fünf Zeichen jeder Zeichenfolge und Zeile die restlichen Zeichen enthält.

Lösung mit str.split()

Eine Möglichkeit zum Teilen Die Zeilenspalte soll die Methode str.split() verwenden. Diese Methode verwendet einen regulären Ausdruck als Argument und teilt die Zeichenfolge basierend auf dem durch den regulären Ausdruck angegebenen Muster auf. In unserem Fall können wir den folgenden regulären Ausdruck verwenden:

r'(\d{5}) +'
Nach dem Login kopieren

Dieser reguläre Ausdruck entspricht einer Folge von fünf Ziffern gefolgt von einem oder mehreren Leerzeichen. Wir können dann die Methode str.split() verwenden, um die Zeilenspalte mithilfe dieses regulären Ausdrucks zu teilen, und die resultierenden Listen den Fips und Zeilenspalten wie folgt zuweisen:

import pandas as pd

# Split the 'row' column into 'fips' and 'row' columns
df[['fips', 'row']] = df['row'].str.split(r'(\d{5}) +', n=1, expand=True)
Nach dem Login kopieren

Der Parameter expand=True lautet Wird verwendet, um anzugeben, dass die Methode str.split() einen DataFrame mit mehreren Spalten und nicht eine Reihe von Spalten zurückgeben soll Listen.

Ergebnis

Nach der Ausführung des obigen Codes sieht unser DataFrame df so aus:

         fips       row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL
Nach dem Login kopieren
Nach dem Login kopieren

Alternative Lösung mit str.extract()

Eine andere Möglichkeit, die Zeilenspalte zu teilen, ist die Verwendung von str.extract()-Methode. Diese Methode verwendet einen regulären Ausdruck als Argument und gibt einen DataFrame zurück, der die Übereinstimmungen für den regulären Ausdruck enthält. In unserem Fall können wir den folgenden regulären Ausdruck verwenden:

r'(\d{5}) +\D+'
Nach dem Login kopieren

Dieser reguläre Ausdruck entspricht einer Folge von fünf Ziffern, gefolgt von einer oder mehreren Nichtziffern. Anschließend können wir die Methode str.extract() verwenden, um die Übereinstimmungen für diesen regulären Ausdruck zu extrahieren und den resultierenden DataFrame wie folgt den Fips und Zeilenspalten zuweisen:

import pandas as pd

# Split the 'row' column into 'fips' and 'row' columns
df[['fips', 'row']] = df['row'].str.extract(r'(\d{5}) +\D+')
Nach dem Login kopieren

Ergebnis

Nach der Ausführung des obigen Codes sieht unser DataFrame df so aus:

         fips       row
0    00000 UNITED STATES
1    01000 ALABAMA
2    01001 Autauga County, AL
3    01003 Baldwin County, AL
4    01005 Barbour County, AL
Nach dem Login kopieren
Nach dem Login kopieren

Beide der oben genannten Lösungen werden es tun Erzielen Sie das gewünschte Ergebnis, indem Sie die Zeilenspalte in Fips und Zeilenspalten aufteilen. Die str.split()-Lösung ist flexibler und kann zum Teilen der Spalte basierend auf einem beliebigen regulären Ausdruck verwendet werden, während die str.extract()-Lösung einfacher und leichter zu verstehen ist.

Das obige ist der detaillierte Inhalt vonWie teile ich eine Pandas DataFrame-String-Spalte in zwei Spalten auf?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage