374 Stimmen

Wie teilt man eine String-Spalte eines Datenrahmens in zwei Spalten?

Ich habe einen Datenrahmen mit einer (String-)Spalte und möchte ihn in zwei (String-)Spalten aufteilen, wobei eine Spaltenüberschrift als ' fips' und das andere 'row'

Mein Datenrahmen df sieht so aus:

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

Ich weiß nicht, wie man df.row.str[:] um mein Ziel der Aufteilung der Zeilenzelle zu erreichen. Ich kann verwenden df['fips'] = hello um eine neue Spalte hinzuzufügen und sie zu füllen mit hello . Irgendwelche Ideen?

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

2voto

mcchran Punkte 62

Ich ziehe es vor, die entsprechenden Pandas-Serien (d.h. die Spalten, die ich brauche) zu exportieren, indem ich die anwenden. Funktion, um den Spalteninhalt in mehrere Reihen aufzuteilen und dann beitreten die erzeugten Spalten in den vorhandenen DataFrame. Natürlich sollte die Quellspalte entfernt werden.

たとえば

 col1 = df["<col_name>"].apply(<function>)
 col2 = ...
 df = df.join(col1.to_frame(name="<name1>"))
 df = df.join(col2.toframe(name="<name2>"))
 df = df.drop(["<col_name>"], axis=1)

Die Funktion zum Trennen von zwei Wörtern sollte in etwa so lauten:

lambda x: x.split(" ")[0] # for the first element
lambda x: x.split(" ")[-1] # for the last element

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X