当前位置: 首页 > 面试题库 >

如何按定义的时间间隔对pandas数据帧进行分组?

姬凡
2023-03-14
问题内容

我有一个这样的dataFrame,我想每60分钟进行一次分组,然后从06:30开始分组。

                           data
index
2017-02-14 06:29:57    11198648
2017-02-14 06:30:01    11198650
2017-02-14 06:37:22    11198706
2017-02-14 23:11:13    11207728
2017-02-14 23:21:43    11207774
2017-02-14 23:22:36    11207776

我在用:

df.groupby(pd.TimeGrouper(freq='60Min'))

我得到这个分组:

                      data
index       
2017-02-14 06:00:00     x1
2017-02-14 07:00:00     x2
2017-02-14 08:00:00     x3
2017-02-14 09:00:00     x4
2017-02-14 10:00:00     x5

但我正在寻找这个结果:

                      data
index       
2017-02-14 06:30:00     x1
2017-02-14 07:30:00     x2
2017-02-14 08:30:00     x3
2017-02-14 09:30:00     x4
2017-02-14 10:30:00     x5

我如何告诉该功能以6小时30分开始以一小时为间隔进行分组?

如果 .groupby(pd.TimeGrouper(freq =‘60Min’)) 无法完成此 操作 ,最好的方法是怎么做?

致敬并非常感谢


问题答案:

使用base=30会同label='right'中的参数pd.Grouper

指定label='right'将使时间段从6:30(较高侧)开始而不是从5:30开始分组。另外,默认情况下base将其设置为0
,因此需要将其偏移30以说明日期的前向传播。

假设您要汇总每个子组的第一个元素,然后:

df.groupby(pd.Grouper(freq='60Min', base=30, label='right')).first()
# same thing using resample - df.resample('60Min', base=30, label='right').first()

产量:

                           data
index                          
2017-02-14 06:30:00  11198648.0
2017-02-14 07:30:00  11198650.0
2017-02-14 08:30:00         NaN
2017-02-14 09:30:00         NaN
2017-02-14 10:30:00         NaN
2017-02-14 11:30:00         NaN
2017-02-14 12:30:00         NaN
2017-02-14 13:30:00         NaN
2017-02-14 14:30:00         NaN
2017-02-14 15:30:00         NaN
2017-02-14 16:30:00         NaN
2017-02-14 17:30:00         NaN
2017-02-14 18:30:00         NaN
2017-02-14 19:30:00         NaN
2017-02-14 20:30:00         NaN
2017-02-14 21:30:00         NaN
2017-02-14 22:30:00         NaN
2017-02-14 23:30:00  11207728.0


 类似资料:
  • 问题内容: 我需要将表分组为15分钟间隔。我可以这样做: 但是要在图表中显示返回的数据,我还需要插入没有任何数据且当前未出现在我的select语句中的间隔。我该如何插入这些? 问题答案: 用15分钟的增量创建一个带有所有可能时间戳的表,然后从该表向上面的查询进行LEFT JOIN。 如果您知道图表始终涵盖24小时,则只需创建一个数字为0-95的表格,然后为每个条目将其添加到图表的开始时间。

  • 然后返回给我以下文档: 如何使用GroupOperation在spring-data-mongo中指定form这个聚合?

  • 问题内容: 我是Postgres的新用户,我敢肯定已经有了答案,但是我找不到。 我需要分析活动日志表中的一些数据,并将结果按时间段分组。 一个简单的问题版本是一个包含三个字段的表: 我要捕获的操作字符串可能是“ create_entry”(是的,我知道这很不错,因为它的数据库设计不错,但我坚持使用它) 我正在寻找的输出是一个报告,该报告按年份和月份显示了“ create_entry”操作的计数。就

  • 我有一个pandas数据帧像: 我想按第一列进行分组,并将第二列作为行中的列表:

  • 问题内容: 我有一个数据集: 我想基本上在一个小时内“拆分”这些时间间隔,例如: 到目前为止,这是我的代码(该想法的积分发给@DumitrescuBogdan,将通话数据分为15分钟间隔): 后半部分(在“全部合并”之后)不产生任何结果,前半部分产生以下结果: 谢谢,我是初学者。我了解第一部分;坦白地说,我不明白下半场 我愿意接受其他解决方案。 我正在使用MS-Access 2010 问题答案:

  • 问题内容: 我正在使用XmlHttpRequests将图像上传到服务器,并且想向用户显示这些上传的进度。 不幸的是,对我的onprogress-event处理程序的调用之间的间隔太大。对于500k图像,通常仅一次或两次调用onprogress。 这是我的代码: 可以更改此行为,还是在浏览器实现中将其硬编码? 问题答案: W3在其XMLHttpRequest Level 2 文档中提出了以下准则。显