[英]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
并将每个组聚合为min
和max
日期。
df.groupby("Site").agg({'date': ['min', 'max']})
这将返回每个站点的min
和max
日期。
我还没有尝试过代码,但它应该做你想要的。
使用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.