Мне нужно оглядываться назад в каждом ряду на разное время и подсчитывать новых пациентов, поэтому все равно, что я оглядываюсь назад на дату и проверяю новых пациентов в прошлом месяце, затем проверяю новых пациентов во втором в прошлом месяце и так далее.
Мой набор данных выглядит примерно так:
На этом изображении я хочу начать с последнего RX_FILL_DT, а затем проверить с прошлого месяца до двух лет
Это мой набор данных
Это мой набор данных
PATIENT_Id> RX_FILL_DT> RX_QUANTITY> DAYS_SUPPLY
106208> 25.03.2010> 20> 30
1240316> 15.05.2010> 15> 30
1381727> 26.08.2010> 10> 28
1381727> 17.01.2010> 10> 28
1381808> 06.06.2010> 30> 30
1381938> 16.04.2010> 45> 90
1381938> 03.08.2010> 15> 30
1381938> 04.09.2010> 15> 30
1381938> 14.09.2010> 15> 30
1381938> 30.09.2010> 15> 27
1381961> 08.06.2010> 15> 25
1381961> 01.07.2010> 15> 23
1381961> 08.07.2010> 15> 25
1381961> 28.07.2010> 15> 23
1381961> 19.08.2010> 15> 25
Макс. Дата 9/30/2010
И мой вывод должен выглядеть так:
lookback 1 month > lookback 2 month >lookback 3 months
Число новых пациентов> 0> 0> 0
Здесь можно посмотреть расчет оглядки назад
Новые пациенты = обычные (до и после)
Здесь пациент - новичок, если у него нет записей во временных рамках.
Например, для просмотра на один месяц у конкретного идентификатора пациента есть только одна запись, то это означает, что пациент является новым и считается, когда просмотр составляет один месяц.
Помогите, пожалуйста, я новичок в пандах.
Мой код такой:
onlyDip = pd.read_table ("C: \ Users \ aa18957 \ Desktop \ Transactions.txt", sep = "|")
onlyDip ['RX_FILL_DT'] = pd.to_datetime (onlyDip ['RX_FILL_DT'])
Я пытаюсь использовать pandas.Series.rolling, но я не уверен, как заставить его считать новых пациентов.