Ausgabe
Hallo, ich habe eine Zeichenfolge, die ich brauche, um bestimmte Zeichenfolgen zu finden und neue Zeilen innerhalb des
Datenrahmens zu erstellen, z.
data = {'Name': ['112 13 15 195 46 60 7 28 88 73 16 91 9 Number of days 32 30 29 32 30 30 31 32 31 29 30 31 30 Appx. average wt 39 4 40 74 331 302 273 263 277 274 307 295 303']}
data = pd.DataFrame(data)
data_out = {'Name': ['112 13 15 195 46 60 7 28 88 73 16 91 9', 'Number of days 32 30 29 32 30 30 31 32 31 29 30 31 30', 'Appx. average wt 39 4 40 74 331 302 273 263 277 274 307 295 303']}
data_out = pd.DataFrame(data_out)
Danke im Voraus.
Lösung
Versuchen Sie es wie folgt:
- Verwenden Sie
str.split
es mit einem Regex-Muster und setzen Sieexpand
es aufTrue
, um das Ergebnis in separaten Spalten zu erhalten. Die unten verwendete Regex sucht nach einem oder mehreren Leerzeichen (\s+
), gefolgt von einem Großbuchstaben (A-Z
). - Verwenden Sie nun ,
.T
um das Ergebnis zu transponieren und die Spalten in Zeilen umzuwandeln. - Verwenden Sie schließlich ,
df.rename
um die eine Spalte umzubenennen, die wir am Ende haben (ihr Name wird sein0
).
res = data.Name.str.split(r'\s+(?=[A-Z])', expand=True, regex=True).T\
.rename(columns={0:'Name'})
print(res)
Name
0 112 13 15 195 46 60 7 28 88 73 16 91 9
1 Number of days 32 30 29 32 30 30 31 32 31 29 3...
2 Appx. average wt 39 4 40 74 331 302 273 263 27...
Beantwortet von – ouroboros1
Antwort geprüft von – Robin (FixError Admin)