Wie kann man Text in einer Pandas-Spalte mithilfe von Trennzeichen in mehrere Zeilen aufteilen?

Mary-Kate Olsen
Freigeben: 2024-11-16 10:39:03
Original
704 Leute haben es durchsucht

How can you split text in a Pandas column into multiple rows using delimiters?

Text in einer Spalte mit Pandas in mehrere Zeilen aufteilen

Wenn Sie mit Tabellendaten arbeiten, die Zeichenfolgen enthalten, die in mehrere Zeilen aufgeteilt werden müssen, Die Nutzung von Pandas und Python kann bei dieser Aufgabe sehr hilfreich sein. Stellen Sie sich das Szenario vor, in dem eine CSV-Datei eine Spalte mit Text enthält, der durch bestimmte Trennzeichen geteilt werden muss.

Problemstellung

Angenommen, Sie haben eine CSV-Datei mit einer Spalte namens „ „Seatblocks“ enthält Zeichenfolgen, die mehrere Sitzgruppen darstellen, die jeweils durch ein Leerzeichen gefolgt von einem Doppelpunkt getrennt sind. Ihr Ziel ist es, diese Sitzgruppen in separate Reihen aufzuteilen. Beispielsweise sollte die folgende Seatblocks-Spalte:

2:218:10:4,6 1:13:36:1,12 1:13:37:1,13
Nach dem Login kopieren

drei separate Zeilen ergeben:

2:218:10:4,6
1:13:36:1,12
1:13:37:1,13
Nach dem Login kopieren

Lösung mit Pandas

Um effizient zu sein Teilen Sie die Spalte „Seatblocks“ auf und erstellen Sie mehrere Zeilen. Sie können die folgenden Schritte verwenden:

  1. Nach Leerzeichen teilen: Verwenden Sie die Methode str.split(), um den Text zu teilen durch Leerzeichen in jeder Zelle der Spalte „Sitzblöcke“:

    s = df['Seatblocks'].str.split(' ')
    Nach dem Login kopieren
  2. Wenden Sie die Reihenfunktion an: Um die resultierenden Listen von durch Leerzeichen getrennten Zeichenfolgen in a umzuwandeln Datenrahmen, wenden Sie die Serienfunktion auf jede Liste an:

    s = s.apply(Series, 1)
    Nach dem Login kopieren
  3. Datenrahmen reduzieren: Stapeln Sie den neuen Datenrahmen, um ihn in einen einspaltigen Datenrahmen zu reduzieren:

    s = s.stack()
    Nach dem Login kopieren
  4. Index zurücksetzen und Spalte umbenennen: Setzen Sie den Index zurück, um ihn am Index des ursprünglichen Datenrahmens auszurichten, und benennen Sie die Spalte in „Seatblocks“ um:

    s.index = s.index.droplevel(-1)
    s.name = 'Seatblocks'
    Nach dem Login kopieren
  5. Originalspalte löschen:Originalspalte „Seatblocks“ aus dem Datenrahmen entfernen:

    del df['Seatblocks']
    Nach dem Login kopieren
  6. Verbinden Geteilter Datenrahmen: Zum Schluss den geteilten Datenrahmen mit dem ursprünglichen Datenrahmen verbinden:

    df = df.join(s)
    Nach dem Login kopieren

Alternative zur Aufteilung nach Doppelpunkt

If Die Spalte „Seatblocks“ muss durch Doppelpunkte aufgeteilt werden. Sie können die Lösung wie folgt ändern:

s = df['Seatblocks'].str.split(' ')
s = s.apply(lambda x: Series(x.split(':')))
Nach dem Login kopieren

Dadurch wird ein Datenrahmen mit jeder durch Doppelpunkte getrennten Zeichenfolge in einer eigenen Spalte erstellt.

Das obige ist der detaillierte Inhalt vonWie kann man Text in einer Pandas-Spalte mithilfe von Trennzeichen in mehrere Zeilen aufteilen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

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