当前位置: 首页 > 知识库问答 >
问题:

在熊猫中查找时间序列范围中的最小和最大日期

钮出野
2023-03-14

我有一个数据框,如下所示,带有网站名称和每个网站的日期范围。

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

只是不确定最好的方法是将它分别应用于每个站点。

共有2个答案

年运珧
2023-03-14

使用Groupbyagg的高级语法,您可以直接获得自定义格式:

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
黄昊英
2023-03-14

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

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

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

我还没有试过这个代码,但它应该能满足你的需要。

 类似资料:
  • 问题内容: 我有一个数据框,看起来像: 我希望按年份分组,然后总结sum_col。此外,我需要查找一周的最早日期和最新日期。第一部分很简单: 我试图用这个来找到最小/最大日期,但是没有成功: 如何找到最早/最新出现的日期? 问题答案: 您需要组合适用于同一列的函数,如下所示:

  • 我有一个熊猫数据框与重叠的时间跨度,看起来像这样: 我的目标是获得每组的最小值和最大值。我试过: 但这只按的最小值和最大值进行分组,而我正在寻找每组的的最小值和的最大值。 例如,在聚合之后,grp6应该具有最小的和最大的 熊猫有没有一个简单的解决办法?

  • 我试图找到矩阵中每列的最小值和最大值,但我当前的代码运行不正确。我试图把最小值放在一个新矩阵的第一行,最大值放在下一行,并对每一列这样做。任何帮助都将不胜感激,谢谢!

  • 我有一个名为的,它有4列,如下所示: 我想要的是找到关于类的每一列的最小值和最大值。换句话说,我希望得到一个类似于下面的结果:

  • 问题内容: 我有一个日期时间对象列表,我想找到最早的或最小的对象。其中一些日期可能在将来。 最佳方法是什么?我当时正在考虑将datetime.now()与其中的每一个进行比较。 问题答案: 最老的: 现在最年轻:

  • 我有一个关于日期范围的问题。我用板条箱装了这样的东西: 结果: 我需要删除3个日期:2017-12-25, 2017-12-27和2018-01-04。我在寻找能帮助我的公式,但我没有找到正确的。我也试图将所有这些更改为列表,但后来我无法使用删除公式,因为它没有找到列表中的值...有人知道怎么修吗? 谢谢大家!