微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

从 1 秒到 1 分钟的下采样是使用重新采样熊猫创建新行

如何解决从 1 秒到 1 分钟的下采样是使用重新采样熊猫创建新行

我是 Python 编程的新手。我有一个以秒为单位的时间序列日期集,它从每天上午 9.15 开始到下午 3.30 结束。我正在尝试将其下采样到 1 分钟的时间范围。

原始数据集示例:

                             Px_NIFTY 20140130 0.0 FF  Px_NIFTY 20140130 4500.0 CE  \
 Time                                                                         
2014-01-01 09:15:01               6364.329167                          NaN   
2014-01-01 09:15:02               6366.776471                          NaN   
2014-01-01 09:15:03               6367.158824                       1854.0   
2014-01-01 09:15:04               6368.134211                       1854.0   
2014-01-01 09:15:05               6367.355000                          NaN   
...                                       ...                          ...   
2014-01-31 15:29:55                       NaN                          NaN   
2014-01-31 15:29:56                       NaN                          NaN   
2014-01-31 15:29:57                       NaN                          NaN   
2014-01-31 15:29:58                       NaN                          NaN   
2014-01-31 15:29:59                       NaN                          NaN   

当我使用 resample 将采样下采样到 1 分钟时间范围时,它会在下午 3.30 之后使用 nans 创建新行,直到第二天上午 9 点 15 分。我试图在论坛中找到答案,但没有成功。

我用来重新采样的代码

df.resample('1T',label='right').last()

我得到的输出不正确:

                           Px_NIFTY 20140130 0.0 FF  Px_NIFTY 20140130 4500.0 CE  \
Time                                                                         
2014-01-14 05:36:00                       NaN                          NaN   
2014-01-14 05:37:00                       NaN                          NaN   
2014-01-14 05:38:00                       NaN                          NaN   
2014-01-14 05:39:00                       NaN                          NaN   
2014-01-14 05:40:00                       NaN                          NaN   
...                                       ...                          ...   
2014-01-18 17:51:00                       NaN                          NaN   
2014-01-18 17:52:00                       NaN                          NaN   
2014-01-18 17:53:00                       NaN                          NaN   
2014-01-18 17:54:00                       NaN                          NaN   
2014-01-18 17:55:00                       NaN                          NaN   

数据集只有每天上午 9.15 到下午 3.30 的条目。

解决方法

您能否检查以下内容是否适合您:

df = (df.groupby(df.index.date).resample('T',label='right').last()
        .reset_index(level=0,drop=True))

按天分组 (.date) 将 resample 限制为组的“本地”范围,一天。否则,resample 会在几天之间填补空白,这将影响其整体结果。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。