1

我需要在每行中回顾不同的时间并计算新患者,所以这就像我从一个日期回顾并检查上个月的新患者然后检查上个月第二个的新患者等等。

我的数据集是这样的: 在这张图片中,我想从最后一个 RX_FILL_DT 开始,然后检查从上个月到两年 这是我的数据集

这是我的数据集

PATIENT_Id > RX_FILL_DT > RX_QUANTITY > DAYS_SUPPLY

106208 > 2010 年 3 月 25 日 > 20 > 30

1240316 > 5/15/2010 > 15 > 30

1381727 > 2010 年 8 月 26 日 > 10 > 28

1381727 > 1/17/2010 > 10 > 28

1381808 > 2010 年 6 月 6 日 > 30 > 30

1381938 > 2010 年 4 月 16 日 > 45 > 90

1381938 > 2010 年 8 月 3 日 > 15 > 30

1381938 > 2010 年 9 月 4 日 > 15 > 30

1381938 > 2010 年 9 月 14 日 > 15 > 30

1381938 > 2010 年 9 月 30 日 > 15 > 27

1381961 > 2010 年 6 月 8 日 > 15 > 25

1381961 > 2010 年 7 月 1 日 > 15 > 23

1381961 > 2010 年 7 月 8 日 > 15 > 25

1381961 > 2010 年 7 月 28 日 > 15 > 23

1381961 > 2010 年 8 月 19 日 > 15 > 25

最大日期 2010 年 9 月 30 日

我的输出应该是这样的:

             lookback 1 month >   lookback 2 month    >lookback 3 months

新患者数 > 0 > 0 > 0
可以在此处看到回顾计算

新患者 = 后期 - 常见(之前和后期之间)

如果患者在回顾时间范围内没有任何记录,则这里的患者是新患者。

例如,对于一个月的回溯,特定的患者 ID 只有一个条目,则表示该患者是新患者,并且在回溯为一个月时计算在内。

请帮助我是熊猫的新手。

我的代码是这样的:

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 但我不确定如何让它计算新患者。

4

0 回答 0