У меня есть пользователи dataframe с некоторыми «плохими» строками для GroupBy, ключ в этом dataframe - id. Я знаю, что я должен отбросить эти строки.
У меня есть этот список:
period = pd.DatetimeIndex(start='00:00:00',end='23:50:00',freq='120min').strftime('%H:%M:%S')
Index(['00:00:00', '02:00:00', '04:00:00', '06:00:00', '08:00:00', '10:00:00',
'12:00:00', '14:00:00', '16:00:00', '18:00:00', '20:00:00', '22:00:00'],
dtype='object')
Mydata is:
id timestamp counts
0 1 2013-01-07 00:10:00 1
1 1 2013-01-07 00:30:00 1
2 1 2013-01-07 00:40:00 1
3 1 2013-01-07 00:50:00 1
4 1 2013-01-07 01:00:00 6
5 1 2013-01-07 01:10:00 4
6 1 2013-01-07 01:20:00 4
7 1 2013-01-07 01:30:00 11
8 1 2013-01-07 01:40:00 13
9 1 2013-01-07 01:50:00 11
10 1 2013-01-07 02:00:00 13
11 1 2013-01-07 02:10:00 13
12 1 2013-01-07 02:20:00 15
13 1 2013-01-07 02:30:00 21
14 1 2013-01-07 02:40:00 13
15 1 2013-01-07 02:50:00 20
16 1 2013-01-07 03:00:00 22
17 1 2013-01-07 03:10:00 19
18 1 2013-01-07 03:20:00 15
19 1 2013-01-07 03:30:00 23
20 1 2013-01-07 03:40:00 12
21 1 2013-01-07 03:50:00 10
22 1 2013-01-07 04:00:00 17
23 1 2013-01-07 04:10:00 12
24 1 2013-01-07 04:20:00 19
25 1 2013-01-07 04:30:00 15
26 1 2013-01-07 04:40:00 19
27 1 2013-01-07 04:50:00 12
28 1 2013-01-07 05:00:00 21
29 1 2013-01-07 05:10:00 22
И я хотел бы удалить все строки, которых нет в списке. Мой текущий код следующий, но он дает мне пустой результат:
df = df.drop(df[~df.timestamp.apply(lambda x: x.time()).isin(date_rng)].index.tolist())