2016-09-09 219 views
1

的範圍時間戳我有一個數據幀DF:迭代通過在Python

TIMESTAMP equipement1 equipement2 
2016-05-10 13:20:00 0.000000 0.000000 
2016-05-10 14:40:00 0.400000 0.500000 
2016-05-10 15:20:00 0.500000 0.500000 

蔭試圖通過5分鐘步驟通過時間戳進行迭代。 我嘗試:pd.date_range(start, end, freq='5 minutes')

但我遇到了時間戳格式的問題。

" ValueError: Could not evaluate 5 minutes"

任何想法,以幫助我解決這個問題呢?

謝謝

+1

from'pd'我猜你正在使用熊貓圖書館。你應該添加該標籤。 –

+0

我得到這個錯誤:「ValueError:無法評估5分鐘」 – Poisson

回答

3

首先,確保你的TIMESTAMP列是一個日期,而不是字符串(例如df['TIMESTAMP'] = pd.to_datetime(df.TIMESTAMP))。

接下來,使用此列作爲數據幀的索引。爲了使其成爲永久的,df.set_index('TIMESTAMP,inplace = True)`。

現在您可以resample對於任何給定頻率(例如30min),並使用聚合的不同方法,如summean(缺省值),lambda函數,等等)。您可以添加.fillna(0)以用零替換NaN。

>>> df.set_index('TIMESTAMP').resample('30min', how='sum') 

        equipement1 equipement2 
TIMESTAMP          
2016-05-10 13:00:00   0.0   0.0 
2016-05-10 13:30:00   NaN   NaN 
2016-05-10 14:00:00   NaN   NaN 
2016-05-10 14:30:00   0.4   0.5 
2016-05-10 15:00:00   0.5   0.5 
+0

謝謝,在lambda函數的情況下,我怎麼='lambda'然後我創建一個lambda函數def lambda?是嗎 ?謝謝 – Poisson

+0

'df.set_index('TIMESTAMP')。resample('30min',how = lambda group:group.sum())' – Alexander