2017-02-11 16 views
2

Ich möchte eine Zeitreihe für einen Datensatz, der Daten für 12 Monate hat. Die Daten werden jedoch für jede Stunde eines jeden Tages für die 12 Monate aufgezeichnet. Der gesamte Datensatz umfasst mehr als 8000 Datenpunkte. Die Daten werden in folgendem FormatPlot Zeitreihe Matplotlib mit vielen Datenpunkten

 Date Time Energy 
0 2014-01-01 1  1118.1 
1 2014-01-01 2  1233.2 
2 2014-01-01 3  1278.2 
.  .  .  . 
23 2014-01-01 24 1125.3 
24 2014-01-02 1  1213.3 
. .   .  . 

Als ich es zeichnen wie diese

plt.plot(energy['Date'], energy['Energy']) 
plt.xlabel('Date') 
plt.ylabel('Energy') 

ich die folgende Ausgabe time series

Dieses Diagramm macht nicht viel Sinn, weil ich beobachten kann nicht irgendwelche Trends. Ich möchte stattdessen die durchschnittliche Energie für jeden Tag darstellen. Alle anderen Vorschläge darüber, wie diese Zeitreihe planen so, dass ich irgendwelche Trends beobachten ist willkommen

+0

Es ist über 8000 sortieren, müssen ?! https://giphy.com/gifs/wander-over-yonder-Mra7xZQpHxNC Im Moment rangle ich einen relativ kleinen Datensatz mit 2.747.418 * 2 Punkten. – wordsforthewise

Antwort

3

Sie benötigen groupby mit Aggregieren mean zuerst:

energy = energy.groupby('Date')['Energy'].mean() 

und dann Series.plot:

energy.plot() 

Alles zusammen:

energy.groupby('Date')['Energy'].mean().plot() 
1

IIUC:

Sie

energy = energy.sort_values(['Date', 'Time']) 
plt.plot(energy['Date'], energy['Wind Generation']) 
plt.xlabel('Date') 
plt.ylabel('Energy') 
plt.autofmt_xdate() 
Verwandte Themen