我有一个数据框架,其中有药物,处方日期,以及特定的处方日期是否与预先确定为列的空白相关。第三列的值为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 我只想选择“下面”的行,并根据与特定药物相关的药物节假日的数量为它们分配治疗号。每次放假后,治疗次数都会增加,因为服用药物的人可能已经改变了治疗方案。如何获得这个输出?
发布于 2021-05-26 20:32:10
试试这个:
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-2015https://stackoverflow.com/questions/67712156
复制相似问题