Panda dataframe aufteilen einer Spalte in mehrere Spalten
Habe ich ein pandas dataframe aussieht wie unten:
date | location | occurance <br>
------------------------------------------------------
somedate |united_kingdom_london | 5
somedate |united_state_newyork | 5
Ich will es verwandeln in
date | country | city | occurance <br>
---------------------------------------------------
somedate | united kingdom | london | 5
---------------------------------------------------
somedate | united state | newyork | 5
Ich bin neu in Python und nach einigen Recherchen habe ich folgenden code geschrieben, aber scheint nicht in der Lage zu extrahieren, Land und Stadt:
df.location= df.location.replace({'-': ' '}, regex=True)
df.location= df.location.replace({'_': ' '}, regex=True)
temp_location = df['location'].str.split(' ').tolist()
location_data = pd.DataFrame(temp_location, columns=['country', 'city'])
Ich Schätze Ihre Antwort.
- Danke Jungs für Eure Antwort. Mit gegebenen Kontext, alle Ihre Lösungen gut funktioniert, aber die tatsächliche dataset ich arbeite ziemlich kompliziert. Als Ergebnis, ich war nicht in der Lage, es klappt noch. Von oben snippet von mir, nach dem ersetzen von ' -','_', ich mache for item in temp: if str(item) == 'United': frames = [temp[0], temp[2].str.partition(" ", expand=True)] Ergebnis = pd.concat ("frames") print result //aber dies scheint nicht zu arbeiten
Du musst angemeldet sein, um einen Kommentar abzugeben.
Beginnend mit diesem:
Versuchen Sie dies:
Kreditaufnahme Idee von @MaxU
Aufteilen der Spalte string-Wert mit
rfind()
Versuchen Sie dies:
Wenn Sie es wollen zurück in die ursprüngliche df:
Etwas wie dies funktioniert
Könnten Sie die regex in die ersetzen-für eine mehr komplizierte Muster, aber wenn es nur das Wort, nachdem die letzten
_
ich finde es einfacher, nur in umgekehrter str zweimal als hack sondern als hantieren mit regulären AusdrückenIch würde .str.extract() Methode:
PS bitte beachten Sie, dass es nicht möglich ist, zu analysieren, richtig (zu unterscheiden) zwischen den Reihen mit zwei-Worte-Land + ein-Wort-Stadt und Zeilen mit ein-Wort-Land + zwei-Worte-Stadt (es sei denn, Sie haben eine vollständige Liste der Länder, so überprüfen Sie es anhand dieser Liste)...