2016-10-13 3 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']) 

мне нужно, чтобы получить среднее время между каждым событием и следующим событием б. Я пытаюсь использовать shift для генерации ряда различий, чтобы усреднить его, но я не могу заставить его работать.

Спасибо!

ответ

3

Во-первых, преобразовать даты в DateTimes, а затем использовать 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') 
Смежные вопросы