So habe ich einen großen Pandas Datenrahmen, die wie folgt strukturiert:Aufteilen einen Pandas Datenrahmen in kleinere Stücke auf Basis der Summe einer Spalte
x y count
blah blah 4
blah blah 12
blah blah 15
...
Die endgültige Summe der Zählspalte beträgt rund 48.000. Ich möchte den gesamten Datenrahmen in etwa zwölf verschiedene Teile aufteilen. Die Bedingung für diese Aufteilung ist, dass die Anzahl der Spalten in diesem Block ungefähr 4.000 betragen soll. Die Länge jedes Chunks kann also unterschiedlich sein, aber die Summe der Zählspalte muss bei etwa 4.000 liegen.
Gibt es eine schnelle und effiziente Möglichkeit, dies zu erreichen? Mein aktueller Versuch beinhaltet durch den Datenrahmen laufen und Anhängen bis die Summe der Zeilen 4000 überschreitet, aber es ist ziemlich langsam:
df_sum = 4000
new_df = pd.DataFrame(columns=['x','y','count'])
i = 1
for index, row in df.iterrows():
appended_sum = 0
if appended_sum < df_sum:
appended_sum += row['count']
a_df.loc[len(a_df)] = row
else:
a_df.to_csv('split_'+str(i)+'.csv', index=False)
i+=1
a_df= a_df.iloc[0:0]
appended_sum = 0
Genau das, was ich brauchte! Vielen Dank. – GreenGodot