Как считать уникальные значения с динамическим диапазоном дат - PullRequest
1 голос
/ 25 января 2020

Предположим, у вас есть этот фрейм данных:

Date       | ID
2014-01-01 | 134
2014-01-02 | 154
2014-01-03 | 123
...
2019-12-31 | 12433

Для каждой строки мне нужно получить значение Date и проверить в том же самом DataFrame x день a go до значения Date и подсчитать уникальный идентификатор ценности. что-то вроде этого:

Date       | ID  | UniqueIDs_x_days_ago
2014-01-01 | 134 |unique ID values between (2014-01-01 - x days) and 2014-01-01
2014-01-02 | 154 |unique ID values between (2014-01-02 - x days) and 2014-01-02
2014-01-03 | 123 |unique ID values between (2014-01-03 - x days) and 2014-01-03
...
2019-12-31 | 12433 |unique ID values between (2019-12-31 - x days) and 2019-12-31 

К сожалению, у меня большой фрейм данных, поэтому, если это возможно, я хотел бы также узнать, как быстро это сделать.

1 Ответ

1 голос
/ 25 января 2020

Вы можете сначала вычислить дату начала, затем нарезать диапазон дат и подсчитать уникальные идентификаторы.

x = 90

df['Date_Start'] = df.Date - pd.offsets.Day(x)
df=df.set_index('Date').sort_index()
df['UniqueIDs_x_days_ago'] = df.apply(lambda x: df.loc[x.Date_Start: x.name].ID.nunique(), axis=1)
df = df.reset_index()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...