熊猫:从截止级别中选择最后一个日期

时间:2019-04-06 15:11:24

标签: pandas date datetime grouping

我有一个日期列表和截止日期:3月31日。我想查看3月31日之前的第一个日期,并将其作为一年中的最后一个日期,然后选择之前的最后3个并将它们放入1年。 (例如:如果我们看1997年,即1997年3月之前的第一个日期是:索引8,日期:1996-12-13。现在我想回顾3个日期,并将它们放在同一年1997年下,即索引7 ,6和5 |与1995年相同,即1995年3月之前的第一个日期,是索引0,日期:1994-12-15,但是索引0之前没有可用数据。

我的数据如下:

    date
0   1994-12-15
1   1995-07-06
2   1995-09-13
3   1995-12-12
4   1996-03-14
5   1996-07-01
6   1996-09-17
7   1996-11-12
8   1996-12-13
9   1997-06-25
10  1997-09-10
11  1997-12-12

我希望它以以下方式显示:

    date        year
0   1994-12-15  1995
1   1995-07-06  1996
2   1995-09-13  1996
3   1995-12-12  1996
4   1996-03-14  1996
5   1996-07-01  1997
6   1996-09-17  1997
7   1996-11-12  1997
8   1996-12-13  1997
9   1997-06-25  1998
10  1997-09-10  1998
11  1997-12-12  1998

如果您对我该如何处理有任何想法,请告诉我。

1 个答案:

答案 0 :(得分:3)

merge_asof与由最小和最大年份创建的助手(?=\n{2}|\\z)以及date_range一起使用,它会在由列DataFrame截止之前回填值:

df1['year']