2017-10-18 81 views
1

我使用熊貓對數據幀進行排序並計算落入小時間隔的值(行)數。我的數據框被命名爲col_times,看起來像這樣:熊貓重採樣:設置時間的起始值

enter image description here

然後我用col_times.set_index('date_time').resample(rule = 'H')['Uhrzeit'].count()計算有多少值都在每小時。這從14:00:00開始,因爲現在有價值,最早的時間是14:57:07。但是,我需要從10:00:00開始計算,因爲我有邏輯,並且需要將其應用於各種數據框,我需要看到10:00:00和10:59之間沒有值: 59。我該如何設置resample函數呢?

回答

1

你必須從10:00追加新行日期開始:

col_times = col_times.set_index('date_time') 
date = pd.to_datetime(col_times.index.min().replace(hour=10, minute=0)) 
col_times.loc[date] = np.nan 
print (col_times) 
          Datum Uhrzeit 
date_time         
2017-10-16 14:57:07 16.10.2017 14:57:07 
2017-10-16 14:57:49 16.10.2017 14:57:49 
2017-10-16 14:57:57 16.10.2017 14:57:57 
2017-10-16 14:58:11 16.10.2017 14:58:11 
2017-10-16 14:58:21 16.10.2017 14:58:21 
2017-10-16 10:00:07   NaN  NaN 

df = col_times.resample(rule = 'H')['Uhrzeit'].count() 
print (df) 
date_time 
2017-10-16 10:00:00 0 
2017-10-16 11:00:00 0 
2017-10-16 12:00:00 0 
2017-10-16 13:00:00 0 
2017-10-16 14:00:00 5 
Freq: H, Name: Uhrzeit, dtype: int64 
+0

真棒,一如既往的簡單的解決方案是最好的ones.Thank你。一個問題:我需要numpy來創建'NaN'值嗎? – rashid

+0

是的,你是對的!謝謝。 – jezrael