根据某些日期的特定条件对一列进行计数

时间:2019-05-15 18:44:19

标签: python python-3.x pandas python-2.7 pandas-groupby

我有一个带有ID,“签入日期”和“签出日期”列的数据框,我想根据特定条件查找每个ID的假期总数。

对于总假期,

  1. 当Checkout日期等于ID中的入住日期时,则应考虑1个假期(Sr.no 2 Checkout属于Sr.no 1 Checkin)

  2. 当2个ChechIn日期在ID中相等时,则应考虑1个假期(Sr.no 11和Sr.no 12)

  3. 当2个Checkout日期在ID中相等时,则应考虑1个假期(9号和10号假期)

  4. 在ID内的其他某些签入日期和签出日期之间的任何签入日期或签出日期,然后考虑1个假期(Sr.no 3落在sr.no 1中)

例如: 输入数据框

sr.No ID    CheckIn         CheckOut Holidays
 1     1    17-01-2003  30-01-2003     1
 2     1    15-01-2003  17-01-2003     1 
 3     1    19-01-2003  22-01-2003     1
 4     2    12-08-2001  15-08-2001     1
 5     2    15-08-2001  18-01-2001     1
 6     2    20-01-2001  25-01-2001     1
 7     3    02-07-2000  07-07-2000     1
 8     3    23-07-2000  29-07-2000     1
 9     4    21-12-2000  23-12-2000     1
 10    4    19-12-2000  23-12-2000     1
 11    4    18-05-2000  20-05-2000     1
 12    4    18-05-2000  19-05-2000     1

输出数据框:

ID  Total_Holidays
1        1
2        2
3        2
4        2

0 个答案:

没有答案