Ich habe einen Pandas Datenrahmen data_1
wie folgt benannt:Wie kann man die Geschwindigkeit eines aggregierten Vorgangs auf einem Pandas-Dataframe verbessern?
tenant_id tenant_class_id tenant_date
100 10001 2004-01-10
100 10001 2004-08-25
101 10001 2016-09-20
102 10002 2013-07-12
103 10003 2011-04-05
103 10004 2002-05-05
103 10003 2003-12-26
Mein Ziel ist es, die früheste/erste tenant_date
für jeden tenant_id
zu finden. Die tenant_id
ist in long
Format und tenant_date
ist in datetime64
Format
ich diesen Code verwenden es für die Berechnung:
output = data_1.groupby(['tenant_id']).apply(lambda x: x.nsmallest(1, 'tenant_date')).reset_index(drop=1)
Diese für kleinere Datensätze perfekt funktioniert gut, aber meine data_1
enthält etwa 200 Millionen Zeilen. Dieser Code wird nie vervollständigt. Ich habe genug Speicher mit etwa 244 GB RAM. Gibt es eine effizientere Möglichkeit, dies schnell zu tun?