2016-08-06 11 views
1

Bei Verwendung von pandas ist es möglich, die Anzahl der Proben in jedem neuabgetasteten Behälter zu verfolgen?Verfolgen der Anzahl der Proben in jedem Behälter usings pandas pd.resample

beispielsweise angesichts der Abtastdaten:

2000-01-01 00:00:00 1 
2000-01-01 00:01:00 2 
2000-01-01 00:06:00 3 

Mit Resampling auf der time_scale 5min, wird es 2 Proben werden verwendet, um den ersten Takt zu erzeugen, und 1 Probe verwendet, um den zweiten Takt zu erzeugen, würde Ich mag dies zu verfolgen.

Das Ergebnis ich suche wäre

index     val count 
2000-01-01 00:00:00 1.5 2 
2000-01-01 00:05:00 3.0 1 
+0

Können Sie einige Details zu Ihrem Problem veröffentlichen? Was ist das Problem und Ziel? – SO44

+1

'df.resample ('5T'). Count()'? – ayhan

+0

@ayhan das wird Ihnen nur die Anzahl der Zeilen in der vollen Probe sagen. Lassen Sie mich mein Beispiel aktualisieren, um es klarer zu machen – pyCthon

Antwort

1

Angenommen, dies ist Ihre Datenrahmen:

df 
Out: 
        C1 
2000-01-01 00:00:00 1 
2000-01-01 00:01:00 2 
2000-01-01 00:06:00 3 

Sie mehrere Funktionen auf Gruppen anwenden können mit .agg:

df.resample('5T')['C1'].agg({'val': 'mean', 'count': 'count'}) 
Out: 
        count val 
2000-01-01 00:00:00  2 1.5 
2000-01-01 00:05:00  1 3.0 

count zählt die Anzahl der Beobachtungen in jeder Gruppe und val ist ihre Mittel.

+0

Was ist, wenn es mehr Spalten gibt, dh wenn Sie 'df.resample (time_frame = '5T', wie = 'OHLC')' – pyCthon

+1

haben ohlc ist eine spezielle Kombination von ersten, letzten, Min und Max, so dass Sie tun können: 'df.resample ('5T') ['C1']. agg (['zuerst', 'max', 'min', 'last', 'count'])' oder concat die Ergebnisse: 'pd.concat ([df.resample ('5T'). ohlc(), df.resample ('5T') ['C1']. agg ('count')], axis = 1)' – ayhan