如何在数据帧Python中聚合日内时间戳并创建新列

2024-05-15 10:27:17 发布

您现在位置:Python中文网/ 问答频道 /正文

这个问题我试了好几个小时都没有解决办法。。你知道吗

以下是盘中5分钟外汇数据-df。每天每5分钟录制一次。 由于市场接近尾声,我已排除周末数据周末。这里周末的定义是从周五下午5:00到周日下午5:00。你知道吗

                   Time             OPEN      CLOSE       
    216    2014-01-01 18:05:00     0.891975  0.892185    
    217    2014-01-01 18:10:00     0.892075  0.892090 
    ...
    210238 2015-12-31 23:55:00     1.000390  1.000390   
    210239 2016-01-01 00:00:00     1.000390  1.000390 

一天的定义是从上午11:00到上午11:00。所以当我说2014-01-02的时候,我把2014-01-01上午11:00到2014-01-02上午11:00的数据加起来。 2014-01-06(星期一)将包括两个时段的数据: 12014-01-03(星期五)11:00-17:00 22014-01-05(周日)17:00-2014-01-06 11:00

我想创建一个新列'Date'来定义新的“day” 所以通过阅读测向时间,列将记录它属于哪一天。你知道吗

你将如何处理这个问题?你知道吗

                   Time             OPEN      CLOSE   Date      
        2014-01-03 14:05:00     0.891975  0.892185    2014-01-06
        2014-01-05 17:00:00     0.892075  0.892090    2014-01-06
        2014-01-06 11:00:00     0.892075  0.892090    2014-01-06
    ...
        2015-12-31 23:55:00     1.000390  1.000390    2016-01-01
        2016-01-01 00:00:00     1.000390  1.000390    2016-01-01

Tags: 数据dfclosedate定义time市场时间
1条回答
网友
1楼 · 发布于 2024-05-15 10:27:17

我用熊猫补偿。你知道吗

import pandas as pd

times = pd.date_range('2016-01-01 11:00:00', '2016-01-15 11:00:00', freq='H')
pd.to_datetime((times - pd.offsets.Hour(11) + pd.offsets.BDay()).date)

times'2016-01-01 11:00:00''2016-01-15 11:00:00'之间每小时获取一次

根据你的描述,如果我减去11小时,加上一个工作日,我应该是你要找的那一天。然后我转换成没有时间成分的一天。你知道吗

相关问题 更多 >