Если ваша цель - указать , где , вам не хватает временных отметок, вы можете преобразовать в datetime и использовать diff
, чтобы увидеть разницу во времени между строками, затем используйте >'00:00:05'
, чтобы увидеть, является ли разрывбольше 5 секунд:
>>> pd.to_datetime(df['timestamp']).diff() > '00:00:05'
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 True
9 False
10 False
11 False
12 False
13 False
Name: timestamp, dtype: bool
Это указывает на то, что вы пропустили записи выше индекса 8
Если ваша цель просто посмотреть , отсутствуют ли у вас временные метки,используйте any
:
>>> (pd.to_datetime(df['timestamp']).diff() > '00:00:05').any()
True
Указывая, что вы действительно где-то пропускаете временные метки
[EDIT] согласно предложению @ JoranBeasley, вы также можете использовать режимРазница во времени для определения желаемой частоты:
d = pd.to_datetime(df['timestamp']).diff()
>>> (d > d.mode()[0])
0 False
1 False
2 False
3 False
4 False
5 False
6 False
7 False
8 True
9 False
10 False
11 False
12 False
13 False
Name: timestamp, dtype: bool
Поскольку d.mode()[0]
вернет наиболее распространенную наблюдаемую частоту:
>>> d.mode()[0]
Timedelta('0 days 00:00:05')