python - 使用日期时间索引检索熊猫数据帧的特定时间间隔
问题描述
我有一个带有日期时间索引的熊猫数据框。假设 datetime 索引从时间 t1 开始,pandas 有没有办法从时间 t1 开始每隔 15 分钟的时间间隔返回数据帧的行?
此外,是否可以对这 15 分钟间隔之间的所有条目进行平均并返回这些条目?
Datetime Value
2018-10-08 00:00:01 100.70
2018-10-08 00:00:20 98.70
2018-10-08 00:00:34 112.60
2018-10-08 00:00:00 38.30
2018-10-08 00:01:02 60.30
2018-10-08 00:01:24 115.85
2018-10-08 00:02:00 76.10
目前,我通过制作自己的 time_intervals 并使用 between_time 来解决 1 小时长的间隔,但我觉得应该有一个更漂亮的方法来使用 pandas 日期时间索引来做到这一点。
time_intervals=[("{}:00:00".format(i),"{}:00:00".format(i+1)) for i in range(23)]
means_list=[df.between_time(time_interval[0],time_interval[1]).mean()[0] for time_interval in time_intervals]
解决方案
“我有一个带有日期时间索引的熊猫数据框。假设日期时间索引从时间 t1 开始,熊猫有没有办法从时间 t1 开始每隔 15 分钟的时间间隔返回数据框的行?”
这最好通过使用resample来解决:如果要获取给定时间块的第一个元素,请使用
df.resample('15m').first()
但是,如果您想获取给定时间块中的最后一个元素,则应该使用
df.resample('15m').last()
“此外,是否可以对这 15 分钟间隔之间的所有条目进行平均并返回这些条目?”
是的,这也可以通过以下方式完成resample
:
df.resample('15m').mean()
推荐阅读
- python - 我仍然在python中遇到递归错误:内存错误堆栈溢出
- json - java.lang.NoSuchFieldError: defaultReader (JsonSmartJsonProvider.java:39)
- javascript - 我想使用 Vue.js 进行实时加载
- flutter - RangeError(索引):无效值:不在 0..1 范围内,包括:2
- flutter - 尝试从图库中检索视频时,Flutter image_picker 包返回 null
- function - 我应该按照问题陈述打印 5,4,3,2,1,但是我的 c++ 代码显示了一些错误
- python - Keras 输入层似乎删除了训练数据的一维
- angular - 在 Angular 中设置图像路由的正确方法是什么?
- javascript - 如何将 firestore 集合中的字段值与输入字段中的数据进行比较?
- ios - 为什么我精心设计的“非可选”返回值被视为可选?