ich Pandas Datenrahmen, die wie die folgenden und hält Gruppen von Daten über eine Spalte id
aussieht:Demontieren des Datenrahmens in neue Datenfelder von Teilmengen/Gruppen bzw. Erstellen neuer Datenrahmen von Datenuntermengen/Gruppen aus anderen Datenrahmen
import numpy as np
import pandas as pd
df = pd.DataFrame(np.random.randn(10, 4), columns=list('ABCD'))
df['id'] = ['W', 'W', 'W', 'Z', 'Z', 'Y', 'Y', 'Y', 'Z', 'Z']
print(df)
A B C D id
0 0.347501 -1.152416 1.441144 -0.144545 w
1 0.775828 -1.176764 0.203049 -0.305332 w
2 1.036246 -0.467927 0.088138 -0.438207 w
3 -0.737092 -0.231706 0.268403 0.464026 x
4 -1.857346 -1.420284 -0.515517 -0.231774 x
5 -0.970731 0.217890 0.193814 -0.078838 y
6 -0.318314 -0.244348 0.162103 1.204386 y
7 0.340199 1.074977 1.201068 -0.431473 y
8 0.202050 0.790434 0.643458 -0.068620 z
9 -0.882865 0.687325 -0.008771 -0.066912 z
Jetzt möchte ich schaffen neue Datenrahmen (mit dem Namen df_w , df_x, df_y, df_z), die nur ihre Daten von dem ursprünglichen Datenrahmen halten und optimal innerhalb einiger iterabler, z eine Liste:
df_w
A B C D id
0 0.347501 -1.152416 1.441144 -0.144545 w
1 0.775828 -1.176764 0.203049 -0.305332 w
2 1.036246 -0.467927 0.088138 -0.438207 w
df_x
A B C D id
0 -0.737092 -0.231706 0.268403 0.464026 x
1 -1.857346 -1.420284 -0.515517 -0.231774 x
df_y
A B C D id
0 -0.970731 0.217890 0.193814 -0.078838 y
1 -0.318314 -0.244348 0.162103 1.204386 y
2 0.340199 1.074977 1.201068 -0.431473 y
df_z
A B C D id
0 0.202050 0.790434 0.643458 -0.068620 z
1 -0.882865 0.687325 -0.008771 -0.066912 z
Gibt es einen intelligenten (vektorisiert Pandas) Weg, um diese mit groupby zu erreichen, anzuwenden und/oder applymap und eine Funktion?
ich Iterieren über den Datenrahmen dachte, aber es scheint nicht sehr elegant zu sein ..
Vielen Dank im Voraus für alle Hinweise!
Das Zurücksetzen des Indexes über 'v.reset_index (inplace = True)' würde das gewünschte Ergebnis erzeugen. Danke vielmals! Unglaublich, wie schnell du bist. –
'{k: v.reset_index (drop = True) für k, v in df.groupby ('id')}' für Null-Start-Indizes. – Zero
ja, danke Jungs! Ich habe die Antwort aktualisiert – MaxU