繁体   English   中英

从 pandas 的时间序列范围中查找最小和最大日期

[英]Finding the min and max date from a timeseries range in pandas

我有一个 dataframe 如下所示,其中包含每个站点的站点名称和日期范围。

Site       Date
Site_1     02/09/2011
Site_1     03/09/2011
Site_1     04/09/2011
Site_1     05/09/2011
Site_2     14/01/2010
Site_2     15/01/2010
Site_2     16/01/2010
Site_2     17/01/2010

我想找到每个站点的开始和结束日期,并将 dataframe 如下所示:

Site       Start_Date     End_Date
Site_1     02/09/2011     04/09/2011
Site_2     14/01/2010     17/01/2010

我知道我可以像这样找到整个范围的最小值和最大值:

df['Date'].max()
df['Date'].min()

只是不确定将其分别应用于每个站点的最佳方法是什么。

我建议在“站点”列上使用groupby并将每个组聚合为minmax日期。

df.groupby("Site").agg({'date': ['min', 'max']})

这将返回每个站点的minmax日期。

我还没有尝试过代码,但它应该做你想要的。

使用groupby + agg的高级语法,您可以直接获取您的自定义格式:

df.groupby('Site')['Date'].agg([('Start_Date', 'min'), ('End_Date', 'max')])

output:

        Start_Date    End_Date
Site                          
Site_1  02/09/2011  05/09/2011
Site_2  14/01/2010  17/01/2010

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM