2017-05-10 1 views
1

Ich möchte Matplotlib verwenden, um zwischen den minimalen und maximalen Werten meiner Zeitreihen-Daten zu schattieren. Hier ist ein Beispiel für die Daten. Wie erhalte ich die min und max. (Beachten Sie, dass die Zeit unten ist im String-Format, aber ich habe die Zeit in Sekunden vom Vortag 00.00.00, so habe ich Zeit als 5902761,5902770)Wie erhalten Sie das Minimum und das Maximum der Zeitreihendaten

zB

index  time   value 
    1 08:00:00   100 
    2 08:00:01   100 
    3 08:00:01   101 
    4 08:00:02   100 
    5 08:00:02   102 
    6 08:00:02   101 

Was ich will, ist die folgende

index  time  min_value max_value 
    1  08:00:00   100   100 
    2  08:00:01   100   101 
    3  08:00:02   100   102 

Antwort

4

Verwenden aggregate mit rename:

d = {'min':'min_value','max':'max_value'} 
df = df.groupby('time')['value'].agg([min, max]).reset_index().rename(columns=d) 
print (df) 
     time min_value max_value 
0 08:00:00  100  100 
1 08:00:01  100  101 
2 08:00:02  100  102 

, weil:

df = df.groupby('time')['value'].agg({'min_value':'min','max_value':'max'}) 

FutureWarning: ein dict auf einer Serie für die Aggregation mit ist veraltet und wird in einer zukünftigen Version df = df.groupby ('Zeit') [ 'value'] entfernt werden. agg ({'min': 'min_wert', 'max': 'max_wert'})

Verwandte Themen