Allgemein habe ich den Smart Meters-Datensatz von Kaggle und versuche, die erste und letzte Messung nach Haus zu zählen und dann zu aggregieren, um zu sehen, wie viele Häuser begannen (oder beendet) Berichterstattung an einem bestimmten Tag. Ich bin offen für Methoden, die völlig anders sind als die Linie, die ich weiterführe.Zählfrequenz eines Aggregat-Ergebnisses mit Pandas
In SQL, wenn Daten zu erforschen ich so etwas wie folgt oft verwendet:
SELECT Max_DT, COUNT(House_ID) AS HouseCount
FROM
(
SELECT House_ID, MAX(Date_Time) AS Max_DT
FROM ElectricGrid GROUP BY HouseID
) MeasureMax
GROUP BY Max_DT
Ich versuche, diese Logik in Pandas zu replizieren und scheitern. Ich kann die anfängliche Aggregation erhalten wie:
house_max = house_info.groupby('House_Id').agg({'Date_Time' :['max']})
Allerdings versage ich die äußere Abfrage zu bekommen. Insbesondere weiß ich nicht, wie die aggregierte Spalte aufgerufen wird. Wenn ich eine describe() schreibe, wird es im obigen Beispiel als Date_Time angezeigt. Ich habe versucht, das Umbenennen der Spalten:
house_max.columns = ['House_Id','Max_Date_Time']
ich eine StackOverflow discussion über das Umbenennen der Ergebnisse der Aggregation gefunden und versucht, sie anzuwenden:
house_max.columns = ["_".join(x) for x in house_max.columns.ravel()]
Ich finde immer noch, dass ein beschreiben() gibt Date_Time als Spaltenname .
start_end_collate = house_max.groupby('Date_Time_max')['House_Id'].size()
Im Umbenennungsbeispiel kann meine zweite Abfrage Date_Time oder Max_Date_Time nicht finden. Im letzteren Fall scheint der Ravel-Code House_Id nicht zu finden, wenn ich ihn ausführe.
bekam man es in einem. Vielen Dank. Ich habe das schon lange angestarrt, also habe ich nicht einmal versucht, zurückzugehen und meinen Fehler zu verstehen, aber ich werde morgen wieder schauen. Danke nochmal. –