我有一个数据框架,其中包含药物、处方日期,以及特定处方日期是否与预先确定为列的间隔相关。第三列的值为true或false。我正试图创建一个函数,在第三列中找到true的行后输出该数据帧的行。我只想要找到该特定值之后的行,不包括具有true的行。我该如何使用熊猫来完成这项工作?
示例表如下所示:
Drug Date Gap between Consecutive Dates?
Drug 1 5-18-2011 false
Drug 1 6-18-2011 false
Drug 1 10-15-2012 true
Drug 1 11-15-2012 false
Drug 1 12-15-2012 false
Drug 1 8-04-2015 true
Drug 1 9-04-2015 false
Drug 1 10-04-2015 false
输出应该看起来像:
Treatment Window Drug Start Date End Date
1 Drug 1 5-18-2011 6-18-2011
2 Drug 1 10-15-2012 12-15-2012
3 Drug 1 8-04-2015 10-04-2015
我只想选择"下面"所在的行,并根据与特定药物相关的药物假期数为其分配治疗编号。每次药物假期后,治疗次数都会增加,因为服用药物的人可能已经改变了治疗方案。如何获取此输出?
试试这个:
df['Treatment Window'] = df['Gap between Consecutive Dates?'].cumsum() + 1
df.groupby('Treatment Window', as_index=False)
.agg(Drug=('Drug','first'),
Start_Date=('Date','first'),
End_Date=('Date','last'))
输出:
Treatment Window Drug Start_Date End_Date
0 1 Drug 1 5-18-2011 6-18-2011
1 2 Drug 1 10-15-2012 12-15-2012
2 3 Drug 1 8-04-2015 10-04-2015