Dataframe String trennen und addieren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
lambkin
User
Beiträge: 17
Registriert: Dienstag 22. Mai 2018, 08:29

Hi,

wie kann in einer Spalte des Dataframes einen String an den Leerzeichen teilen und die Blöcke addieren?
Beispiel

row| id | Anzahl
0 | id1 | 012 234 345
1 | id2 | 012 234 345 542
2 | id3 | 123 234

und raus kommen soll

0 | id1 | 3
1 | id2 | 4
2 | id3 | 2

Was ich mir bisher überlegt habe.

Code: Alles auswählen

# Trennen am Leerzeichen
df['Anzahl'].str.split()
# Zähle zusammen
df['Anzahl'] = df['Anzahl'].str.len()
Aber das funktioniert wohl nicht so, denn ich bekomme dann immer nur die Länge aller Zeichen in der Spalte 'Anzahl' eingetragen. Also ich bekomme
0 | id1 | 11
1 | id2 | 15
2 | id3 | 7

Ich könnte nun natürlich mit einer Vektoroperation noch den int Wert prüfen und entsprechend auf den gewollten int wert zuweisen, aber es gibt sicherlich von vornherein eine schönere Möglichkeit auf eine Lösung zu kommen.
Kann mir jemand einen anderen Lösungsweg aufzeigen, der sich besser eignet?
Sirius3
User
Beiträge: 17711
Registriert: Sonntag 21. Oktober 2012, 17:20

str.split liefert ein Ergebnis, das Du nicht verwendest.
lambkin
User
Beiträge: 17
Registriert: Dienstag 22. Mai 2018, 08:29

Ja du hast Recht, also müsste ich es umwandeln in folgendes?

splt = df['Anzahl'].str.split()
df['Anzahl'] = len(splt)
lambkin
User
Beiträge: 17
Registriert: Dienstag 22. Mai 2018, 08:29

Okay nein, damit habe ich nur die Summe aller Zeilen der Spalte in jeder Zeile stehen ^^
Antworten