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

Posted

技术标签:

【中文标题】从 pandas 的时间序列范围中查找最小和最大日期【英文标题】:Finding the min and max date from a timeseries range in pandas 【发布时间】:2022-01-17 01:01:58 【问题描述】:

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

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

我想找到每个站点的开始和结束日期,并像这样布置数据框:

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()

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

【问题讨论】:

这能回答你的问题吗? Max and Min date in pandas groupby 【参考方案1】:

使用groupby+agg的高级语法可以直接得到你的自定义格式:

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

输出:

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

【讨论】:

【参考方案2】:

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

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

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

我还没有尝试过代码,但它应该可以满足您的需求。

【讨论】:

以上是关于从 pandas 的时间序列范围中查找最小和最大日期的主要内容,如果未能解决你的问题,请参考以下文章

如何从从excel文件派生的大量字典中的值列表中查找最小值和最大值

查找金属纹理中的最小值和最大值

在 Vba 列的范围内查找最小值和最大值

用于在多张纸上循环的范围内查找最大值和最小值的 VBA 代码

pandas基于时序数据计算模型预测推理需要的统计数据(累计时间长度变化变化率方差均值最大最小等):数据持续的时间(分钟)获得某一节点之后的数据总变化量获得范围内的统计量

pandas基于时序数据计算模型预测推理需要的统计数据(累计时间长度变化变化率方差均值最大最小等):范围内的统计量变化率获得数据集最后的几条数据的统计量变化率获得范围内的统计量