Heim >Backend-Entwicklung >Python-Tutorial >Wie kann man Text in einer Pandas-Spalte mithilfe von Trennzeichen in mehrere Zeilen aufteilen?

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

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-16 10:39:03786Durchsuche

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

drei separate Zeilen ergeben:

2:218:10:4,6
1:13:36:1,12
1:13:37:1,13

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(' ')
  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)
  3. Datenrahmen reduzieren: Stapeln Sie den neuen Datenrahmen, um ihn in einen einspaltigen Datenrahmen zu reduzieren:

    s = s.stack()
  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'
  5. Originalspalte löschen:Originalspalte „Seatblocks“ aus dem Datenrahmen entfernen:

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

    df = df.join(s)

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

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!

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