Pandas-在列中找到某个值后选择行

  • 本文关键字:选择 Pandas- python pandas
  • 更新时间 :
  • 英文 :


我有一个数据框架,其中包含药物、处方日期,以及特定处方日期是否与预先确定为列的间隔相关。第三列的值为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

最新更新