Ich habe einen Datenrahmen, der mehr als 10 Millionen Rohdaten aus etwa 30 Spalten zusammengesetzt hat.Wie wird ein Dataset im Pandas Dataframe subsettiert?
Die erste Spalte ist ID
ID C
1 1
1 2
1 3
1 2
1 3
2 1
2 5
2 9
2 0
2 1
Ich möchte nur die ersten vier Zeilen jeder ID extrahieren (sie sind die neuesten Eingaben wie es bereits sortiert ist)
Ich bin derzeit mit der unter dem Code, aber leider ist es so langsam, da es ungefähr zwei Stunden dauert, um ungefähr 5% der Daten zu verarbeiten, und es kann ein Tag oder so dauern, die ganzen Daten zu verarbeiten.
df1 = pd.DataFrame() # an empty dataframe
for i in df.ID: # df is the dataframe which contains the data
df2 = df[df["ID"]== i]
df2 = df2[0:4] # take the first four rows
df_f = df1.append(df2)
Gibt es eine effektive Möglichkeit, das Gleiche in kürzerer Zeit zu tun.
ist sichergestellt, dass es sind mindestens vier Instanzen jeder ID? – kiliantics
Ja, es gibt mehr als 10 Instanzen für die meisten IDs und ich möchte nur Instanzen der letzten vier Monate abrufen und die Instanzen sind bereits in absteigender Reihenfolge für jede ID sortiert. –