подмножество данных до или за шесть месяцев до сегодняшнего дня pandas - PullRequest
1 голос
/ 27 января 2020

У меня есть фрейм данных, как показано ниже

Unit_ID    Added_Date                   Status         
105        2019-10-02 08:14:16          Rented
106        2020-10-21 07:19:13          Rented
109        2020-03-02 07:18:19          Rented
108        2020-08-01 04:15:28          Vacant
100        2014-10-02 08:14:16          Rented

Из приведенных выше данных я хотел бы отфильтровать данные до или за шесть месяцев до сегодняшнего дня на основе столбца Added_Date.

Ожидается Выход:

Unit_ID    Added_Date                   Status         
105        2019-10-02 08:14:16          Rented
109        2020-03-02 07:18:19          Rented
100        2014-10-02 08:14:16          Rented

1 Ответ

2 голосов
/ 27 января 2020

Используйте Series.between с offsets.DateOffset для фильтрации boolean indexing:

today = pd.to_datetime('now').floor('d')
offset = pd.offsets.DateOffset(months=6)

df = df[df['Added_Date'].between(today - offset, today + offset)]
print (df)
   Unit_ID          Added_Date  Status
0      105 2019-10-02 08:14:16  Rented
2      109 2020-03-02 07:18:19  Rented

Для фильтрации данных перед следующим 6 месяцев до сегодняшнего дня использовать:

today = pd.to_datetime('now').floor('d')
offset = pd.offsets.DateOffset(months=6)
df1 = df[df['Added_Date'] <= today + offset]
print (df1)
   Unit_ID          Added_Date  Status
0      105 2019-10-02 08:14:16  Rented
2      109 2020-03-02 07:18:19  Rented
4      100 2014-10-02 08:14:16  Rented
...