从熊猫数据框中获取多个最小和最大日期

时间:2019-02-25 15:51:07

标签: python python-3.x pandas dataframe

我需要获取y列大于0的两个期间的最小和最大日期。

数据框:

Date          Y
25/02/2019    0
24/02/2019    1
23/02/2019    1
22/02/2019    0
21/02/2019    1
20/02/2019    1
19/02/2019    1
18/02/2019    0
17/02/2019    0
16/02/2019    0

也许以列表形式返回结果。使用上面的表格,我希望获得以下信息:

[[23/02/2019, 24/02/2019],[21/02/2019, 19/02/2019]]

如何返回结果并不重要。正在得到他们。如果只有Y> 0的一个时间段,我知道如何获取最小和最大日期:

min(ua_dates['Date'])
max(ua_dates['Date'])

问题是使用上面的表格,这给了我19/02/2019和24/02/2019。也许那里有某种图书馆?

2 个答案:

答案 0 :(得分:2)

IIUC,您需要选择所有Y == 1 out,然后,如果它们不继续,则要将它们分成不同的组,这里我们使用cumsum

ua_dates.loc[df.Y==1,'Date'].groupby(ua_dates.Y.eq(0).cumsum()).agg(['min','max']).values.tolist()
Out[713]: [['23/02/2019', '24/02/2019'], ['19/02/2019', '21/02/2019']]

答案 1 :(得分:1)

您只需要屏蔽数据:

 mask = ua_dates['Y'] > 0
 min(ua_dates[mask]['Date'])
 max(ua_dates[mask]['Date'])
相关问题