2015-02-04 4 views
0

내 스크립트의 일부에 약간 문제가 있습니다. 연속 된 요일이있는 경우이 다음 날짜/시간 목록에서 첫 번째 날짜를 삭제하려고합니다.datetime 인덱스 목록에서 두 개의 인덱스가 연속되어 있는지 확인하고 첫 번째 인덱스를 삭제하는 방법

In [110]:fault_point 
Out[110]: 
<class 'pandas.tseries.index.DatetimeIndex'> 
[2013-11-05, ..., 2014-05-12] 

길이 : 3, 주파수 : 없음, 시간대 : 없음

exemple의 fault_point의 경우는 포함하지 않습니다 :

2013-11-05 00:00:00 
2013-11-06 00:00:00 
2014-05-12 00:00:00 

그리고 2013년 11월 5일 00:00:00 2013- 이후를 11-05 00:00:00은 연속 일로, 출력으로 갖고 싶습니다 :

2013-11-06 00:00:00 
2014-05-12 00:00:00 
+0

DatetimeIndex의 개체는 datetime64 개체입니다. 두 datetime64 객체의 차이는 timedelta64를 반환합니다. timedelta64 객체의 값을 확인하고 필요한 경우 항목을 드롭하지 않는 것이 좋습니다. –

답변

0

텍스트 날짜를 dat etime 형식을 사용하여 목록의 다음 날짜보다 하루 전의 날짜가 아닌 요소를 추출합니다.

>>> from datetime import * 
>>> mydates = ['2013-11-05 00:00:00', '2013-11-06 00:00:00', '2014-05-12 00:00:00'] 
>>> thedates = map(lambda x: datetime.strptime(x, "%Y-%m-%d %H:%M:%S"),mydates) 
>>> [x for x in thedates if thedates.index(x) == (len(thedates)-1) or (thedates[thedates.index(x)+1]-x).days > 1] 
[datetime.datetime(2013, 11, 6, 0, 0), datetime.datetime(2014, 5, 12, 0, 0)]