1
我有一個pandas數據框,其中有許多列包含某些事件的時間戳,這些時間戳可能發生在對象上,其中對象ID索引行。如何計算python pandas中給定時間間隔內的行數?
obj_id | event1 | event2 | event3 | ...
1 | datetime| datetime | NaT | ...
... | ... | ... | ... | ...
我想算在一天中的事件的出現次數的(丟棄的日期)的數量,在間隔我指定。
索爾遠,我用datetime.hour
和datetime.minute
recunstructing自午夜的分鐘數解決這個問題:
i = 5 # number of minutes in the interval I'm interested in
ev1_counts = df.groupby(
df.event1.apply(lambda x: i * ((60*x.hour + x.minute)//i))
)['event1'].count()
這做工作,但似乎unpythonic,我敢肯定有一個更好的辦法。但是如何?
我見過this question,而是試圖
time_series = pd.DatetimeIndex(df.event1)
ts_df = pd.Series([1]*len(time_series), index=time_series)
ev1_counts = ts_df.groupby(pd.TimeGrouper(freq = '{:d}Min'.format(i)).count()
保持最新信息,這是我想放棄。將pd.datetime
對象與.time()
方法轉換似乎有問題,因爲結果不能被視爲日期時間對象。
你能提供數據的最小樣品,你想要達到的結果? –