Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 连续日期_Python_Pandas - Fatal编程技术网

Python 连续日期

Python 连续日期,python,pandas,Python,Pandas,我的数据如下所示: ID Date_off Approved 1 3/7/2018 1 1 3/8/2018 1 2 3/29/2018 1 2 3/30/2018 1 3 3/30/2018 1 4 4/2/2018 1 5 4/2/2018 1 6 4/2/2018 1 7 4/2/2018 1 8 4/2/2018 1 4 4/3/2018 1 5 4/3/2018 1

我的数据如下所示:

ID  Date_off    Approved
1   3/7/2018    1
1   3/8/2018    1
2   3/29/2018   1
2   3/30/2018   1
3   3/30/2018   1
4   4/2/2018    1
5   4/2/2018    1
6   4/2/2018    1
7   4/2/2018    1
8   4/2/2018    1
4   4/3/2018    1
5   4/3/2018    1
6   4/3/2018    1
7   4/3/2018    1
8   4/3/2018    1
4   4/4/2018    1
9   4/4/2018    1
5   4/4/2018    1
10  4/4/2018    1
6   4/4/2018    1
8   4/4/2018    1
9   4/5/2018    1
11  4/5/2018    1
5   4/5/2018    1
10  4/5/2018    1
6   4/5/2018    1
12  4/5/2018    1
8   4/5/2018    1
13  4/10/2018   1
14  4/10/2018   1
15  4/10/2018   1
16  4/10/2018   1
17  4/11/2018   1
13  4/11/2018   1
15  4/11/2018   1
18  4/11/2018   1
16  4/11/2018   1
15  4/12/2018   1
16  4/12/2018   1
16  4/13/2018   1
19  4/16/2018   1
19  4/17/2018   1
20  4/17/2018   1
21  4/18/2018   1
19  4/18/2018   1
20  4/18/2018   1
21  4/19/2018   1
19  4/19/2018   1
20  4/19/2018   1
22  4/20/2018   1
21  4/20/2018   1
20  4/20/2018   1
22  4/23/2018   1
23  4/23/2018   1
22  4/24/2018   1
23  4/24/2018   1
22  4/25/2018   1
23  4/25/2018   1
22  4/26/2018   1
23  4/26/2018   1
14  4/26/2018   1
22  4/27/2018   1
10  4/27/2018   1
23  4/27/2018   1
5   4/27/2018   1
14  4/27/2018   1
8   4/30/2018   1
1   4/30/2018   1
10  4/30/2018   1
23  4/30/2018   1
11  4/30/2018   1
24  4/30/2018   1
25  4/30/2018   1
14  4/30/2018   1
这是一张有人度假的所有日子的清单。我需要按姓名分组,并返回某人连续休假天数以及第一天和最后一天的计数。 所以我要找的是:

Name   Days  From         To
Bob     2    2017-04-06   2017-04-07
Jimy    2    2017-04-07   2017-04-08
Jimy    1    2017-04-10   2017-04-10
....
目前,Scott的代码返回以下内容:

    Approved    Date_off    Date_off
    sum amin    amax
ID          
1   3   3/7/2018    4/30/2018
2   2   3/29/2018   3/30/2018
3   1   3/30/2018   3/30/2018
4   1   4/2/2018    4/2/2018
4   2   4/3/2018    4/4/2018
5   1   4/2/2018    4/2/2018
5   1   4/3/2018    4/3/2018
5   3   4/4/2018    4/27/2018
6   1   4/2/2018    4/2/2018
6   1   4/3/2018    4/3/2018
6   2   4/4/2018    4/5/2018
7   2   4/2/2018    4/3/2018
8   1   4/2/2018    4/2/2018
8   1   4/3/2018    4/3/2018
8   3   4/4/2018    4/30/2018
9   2   4/4/2018    4/5/2018
10  4   4/4/2018    4/30/2018
11  2   4/5/2018    4/30/2018
12  1   4/5/2018    4/5/2018
13  2   4/10/2018   4/11/2018
14  1   4/10/2018   4/10/2018
14  3   4/26/2018   4/30/2018
15  1   4/10/2018   4/10/2018
15  2   4/11/2018   4/12/2018
16  1   4/10/2018   4/10/2018
16  1   4/11/2018   4/11/2018
16  2   4/12/2018   4/13/2018
17  1   4/11/2018   4/11/2018
18  1   4/11/2018   4/11/2018
19  1   4/16/2018   4/16/2018
19  1   4/17/2018   4/17/2018
19  2   4/18/2018   4/19/2018
20  1   4/17/2018   4/17/2018
20  1   4/18/2018   4/18/2018
20  2   4/19/2018   4/20/2018
21  1   4/18/2018   4/18/2018
21  2   4/19/2018   4/20/2018
22  1   4/20/2018   4/20/2018
22  1   4/23/2018   4/23/2018
22  1   4/24/2018   4/24/2018
22  1   4/25/2018   4/25/2018
22  2   4/26/2018   4/27/2018
23  1   4/23/2018   4/23/2018
23  1   4/24/2018   4/24/2018
23  1   4/25/2018   4/25/2018
23  3   4/26/2018   4/30/2018
24  1   4/30/2018   4/30/2018
25  1   4/30/2018   4/30/2018
我只将最后一行更改为:

df.groupby(['ID','cons']).agg({'Approved':sum, 'Date_off':[np.min, np.max]}).reset_index(level=1,drop=True)
如果没有“日期最小值/最大值”列,则返回相同的结果。 也许是工作日和周末造成了问题?当减去相邻天数时,应将周一和周五计算为相邻天数。

已更新 输出:

   Approved   Date_off           
        sum        min        max
ID                               
1         2 2018-03-07 2018-03-08
1         1 2018-04-30 2018-04-30
2         2 2018-03-29 2018-03-30
3         1 2018-03-30 2018-03-30
4         3 2018-04-02 2018-04-04
5         4 2018-04-02 2018-04-05
5         1 2018-04-27 2018-04-27
6         4 2018-04-02 2018-04-05
7         2 2018-04-02 2018-04-03
8         4 2018-04-02 2018-04-05
8         1 2018-04-30 2018-04-30
9         2 2018-04-04 2018-04-05
10        2 2018-04-04 2018-04-05
10        1 2018-04-27 2018-04-27
10        1 2018-04-30 2018-04-30
11        1 2018-04-05 2018-04-05
11        1 2018-04-30 2018-04-30
12        1 2018-04-05 2018-04-05
13        2 2018-04-10 2018-04-11
14        1 2018-04-10 2018-04-10
14        2 2018-04-26 2018-04-27
14        1 2018-04-30 2018-04-30
15        3 2018-04-10 2018-04-12
16        4 2018-04-10 2018-04-13
17        1 2018-04-11 2018-04-11
18        1 2018-04-11 2018-04-11
19        4 2018-04-16 2018-04-19
20        4 2018-04-17 2018-04-20
21        3 2018-04-18 2018-04-20
22        1 2018-04-20 2018-04-20
22        5 2018-04-23 2018-04-27
23        5 2018-04-23 2018-04-27
23        1 2018-04-30 2018-04-30
24        1 2018-04-30 2018-04-30
25        1 2018-04-30 2018-04-30

斯普德也应该参加比赛吗?吉米是谁?吉姆和吉姆确实有连续两天的假期。谢谢,这是一个打字错误,吉米应该在结果中出现两次。从2007年4月到2008年4月,他曾有一次休假,之后又有一天(10月4日)离他很近,但这并不容易。吉米的成绩应该是两倍。这太棒了。我只需要加上最小日期和最大日期就可以了。感谢在完整数据集上进行测试时,这不会返回准确的结果,我已使用完整数据集更新了示例:(
   Approved   Date_off           
        sum        min        max
ID                               
1         2 2018-03-07 2018-03-08
1         1 2018-04-30 2018-04-30
2         2 2018-03-29 2018-03-30
3         1 2018-03-30 2018-03-30
4         3 2018-04-02 2018-04-04
5         4 2018-04-02 2018-04-05
5         1 2018-04-27 2018-04-27
6         4 2018-04-02 2018-04-05
7         2 2018-04-02 2018-04-03
8         4 2018-04-02 2018-04-05
8         1 2018-04-30 2018-04-30
9         2 2018-04-04 2018-04-05
10        2 2018-04-04 2018-04-05
10        1 2018-04-27 2018-04-27
10        1 2018-04-30 2018-04-30
11        1 2018-04-05 2018-04-05
11        1 2018-04-30 2018-04-30
12        1 2018-04-05 2018-04-05
13        2 2018-04-10 2018-04-11
14        1 2018-04-10 2018-04-10
14        2 2018-04-26 2018-04-27
14        1 2018-04-30 2018-04-30
15        3 2018-04-10 2018-04-12
16        4 2018-04-10 2018-04-13
17        1 2018-04-11 2018-04-11
18        1 2018-04-11 2018-04-11
19        4 2018-04-16 2018-04-19
20        4 2018-04-17 2018-04-20
21        3 2018-04-18 2018-04-20
22        1 2018-04-20 2018-04-20
22        5 2018-04-23 2018-04-27
23        5 2018-04-23 2018-04-27
23        1 2018-04-30 2018-04-30
24        1 2018-04-30 2018-04-30
25        1 2018-04-30 2018-04-30