2016-07-02 12 views
2

Mein DataFrame ist eine Array-Zeitreihe, die jede Minute über einen Zeitraum von ~ 60 Tagen erstellt wird.Datenverarbeitung mit fehlenden Zeitreihen Daten

  1. Zuerst möchte ich die df in 24 Stunden Perioden segmentieren.

  2. Dann möchte ich bestimmte Attribute als Wasserfalldiagramm, Liniendiagramme übereinander zeichnen.

Ich denke an iloc in einer for Schleife mit diesem als die df Reihen zu tun, werden von Zeit indiziert, was bedeutet, es gibt 3600 Zeilen pro Tag. Das Problem ist, dass ich nicht weiß, wie man jede Variable zuweist.

for i in range(58) 
    df = timethingdf.iloc[809+i*3600:809+(i+1)*3600] 

Wie Sie sehen können, würde Ich mag df für jeden der 58 dfs anders sein ich damit machen werde.

Und ich habe keine Ahnung, wie man das Diagramm macht.

Antwort

1

Ich denke, man sollte dies gemeint haben:

for i in range(58) 
    df = timethingdf.iloc[809+i*3600:809+(i+1)*3600] 
    # Doing something with `df` 
+0

oops, du hast Recht, ich habe das behoben –

0

Ich denke, was Sie wollen, ist TimeGrouper:

data = {'date':['2004-1-2:10:10:00', '2004-1-2:10:11:00', '2004-1-1:11:11:00', '2004-1-1:11:13:00'], 'foo':[5,6,7,8]} 
df = pd.DataFrame(data) 
df['date'] = pd.to_datetime(df['date'], format='%Y-%m-%d:%H:%M:%S') 
df = df.set_index('date') 
grouped = df.groupby(pd.TimeGrouper('24H')).sum() 

In [7]: grouped 
Out[8]: 
      foo 
date 
2004-01-01 15 
2004-01-02 11 

Sie können dann .sum() mit ersetzen, was auch immer Sie wollen Aggregator auf dem gruppiert verwenden Teilmengen.