2016-10-13 60 views
3

之间的时间差,我有一个DF计算事件

df = pd.DataFrame({'State': {0: "A", 1: "B", 2:"A", 3: "B", 4: "A", 5: "B", 6 : "A", 7: "B"}, 
       'date': {0: '2016-10-13T14:10:41Z', 1: '2016-10-13T14:10:41Z', 2:'2016-10-13T15:26:19Z', 
         3: '2016-10-14T15:26:19Z', 4: '2016-10-15T15:26:19Z', 5: '2016-10-18T15:26:19Z', 
         6 :'2016-10-17T15:26:19Z', 7: '2016-10-13T15:26:19Z'}}, columns=['State', 'date']) 

我需要得到的每一个事件,以下B事件之间的时间的平均值。我试图用移位来产生一系列的差异来平均它,但我无法完成它的工作。

谢谢!

回答

3

首先,转换日期日期时间,然后使用DataFrame.diff

df.date = pd.to_datetime(df.date) 
df.date.diff() 

产量:

0     NaT 
1  0 days 00:00:00 
2  0 days 01:15:38 
3  1 days 00:00:00 
4  1 days 00:00:00 
5  3 days 00:00:00 
6 -1 days +00:00:00 
7 -4 days +00:00:00 
Name: date, dtype: timedelta64[ns] 

如果你想的平均值,你可以这样做

df.date.diff().mean() # or possibly df.date.diff().abs().mean() 
# Timedelta('0 days 00:10:48.285714')