Как я могу отфильтровать кадр данных Pandas по идентификаторам, которые не появляются или происходят через определенный промежуток времени? - PullRequest
0 голосов
/ 16 октября 2018

У меня есть пример pandas Dataframe, пытающийся создать фильтрованные кадры данных по IDS, которые не появляются после определенного периода времени

также, если возможно, я знаю, что слишком много спрашиваю, DF с дополнительным столбцом по группированным IDSс true или false, которые произошли или не произошли

     ID      timestamp
0    x1      2015/09/27 09:10:30
1    x2      2015/10/11 05:10:30
2    x2      2015/12/20 11:10:30
3    x1      2015/11/17 01:10:30
4    x3      2015/09/09 17:10:30
5    x4      2015/09/25 06:10:30
6    x5      2015/09/23 15:10:30
7    x1      2015/12/21 11:10:30
8    x5      2015/09/27 08:10:30

необходимо получить DF, отфильтрованный по категориям идентификаторов, которые произошли снова через 30 дней

, также создать логическое значение (true или false) или (0,1) массив в качестве дополнительного столбца для идентификаторов, которые произошли или больше не встречались в групповом методе или с оператором case, если это так

1 Ответ

0 голосов
/ 16 октября 2018

Вы можете использовать логическое индексирование и операции над множествами, например:

timestamp = datetime.datetime.now() - datetime.timedelta(days=30)
ids = set(df.ids.unique())
recent_ids = df.loc[df.timestamp > timestamp,'ID']
not_seen = ids.difference(set(recent_ids))

Это выберет все идентификаторы, которые были замечены за последние 30 дней, и предоставит разницу между этим набором и набором всех идентификаторов когда-либовидел.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...