gpt4 book ai didi

python - Pandas:选择周日 23:00 至周五 23:00 之间的数据(1 年跨度)

转载 作者:太空宇宙 更新时间:2023-11-03 16:04:06 24 4
gpt4 key购买 nike

我有 2015 年全年的分钟粒度的欧元兑美元汇率时间序列,包括非交易日(周末除外),其中时间序列值在整个非交易期间重复。

我需要通过仅选择周日下午 23:00 到周五下午 23:00 之间的数据来丢弃此类时间段。

我还没有找到 Pandas 的解决方案(我知道如何在一天内的时间之间进行选择以及如何在几天之间进行选择)。我可以简单地将时间移动 1 小时,然后仅选择工作日,但这是一个次优的解决方案。

知道如何实现这一目标吗?

数据示例:

Local time,              Open,    High,    Low,     Close,   Volume
02.01.2015 22:58:00.000, 1.20008, 1.20016, 1.20006, 1.20009, 119.84
02.01.2015 22:59:00.000, 1.20009, 1.20018, 1.20004, 1.20017, 40.61
02.01.2015 23:00:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0
02.01.2015 23:01:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0
...
04.01.2015 22:58:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0
04.01.2015 22:59:00.000, 1.20017, 1.20017, 1.20017, 1.20017, 0
04.01.2015 23:00:00.000, 1.19495, 1.19506, 1.19358, 1.19410, 109.4
04.01.2015 23:01:00.000, 1.19408, 1.19414, 1.19052, 1.19123, 108.12
...

最佳答案

考虑pd.DataFrame dfpd.tseries.index.DatetimeIndex tidx

tidx = pd.date_range('2010-01-01', '2011-01-01', freq='H')
df = pd.DataFrame(np.ones((tidx.shape[0], 2)), tidx, columns=list('AB'))

我们可以构造一系列要过滤的值

day_hour = (((tidx.weekday + 1) % 7) * 100) + tidx.hour

确定哪些值在周五 23:00 之前

before_friday = day_hour <= 523

周日 23:00 之后

after_sunday = day_hour >= 23

根据上述条件过滤我们的df

df[before_friday & after_sunday]

关于python - Pandas:选择周日 23:00 至周五 23:00 之间的数据(1 年跨度),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40027447/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com