python - 如何在熊猫日期时间数据框中索引打开和关闭?
问题描述
好的,所以我有一个包含 2020 年标准普尔 500 指数的分钟数据的 csv,我正在寻找如何仅索引 9:30 和 4:00 的收盘价和开盘价。本质上,我只想要市场开盘和收盘的情况。到目前为止,代码是:
import pandas as pd
import datetime as dt
import numpy as np
d = pd.read_csv('/Volumes/Seagate Portable/usindex_2020_all_tickers_awvbxk9/SPX_2020_2020.txt')
d.columns = ['Dates', 'Open', 'High', 'Low', 'Close']
d.drop(['High', 'Low'], axis=1, inplace=True)
d.set_index('Dates', inplace=True)
d.head()
它不会让我共享 csv 文件,但这是输出的样子:
Open Close
Dates
2020-01-02 09:31:00 3247.19 3245.22
2020-01-02 09:32:00 3245.07 3244.66
2020-01-02 09:33:00 3244.89 3247.61
2020-01-02 09:34:00 3247.38 3246.92
2020-01-02 09:35:00 3246.89 3249.09
我尝试过使用 loc 和 dt.time,我认为这是正确的编码方式,我只是想不出准确的代码来索引这 2 次。有任何想法吗?谢谢!
解决方案
- 如果在列 ( )
.dt
上使用提取器,则组件是,因此必须用于匹配,而不是'Dates'
d.Dates.dt.time[0]
.time
datetime.time(9, 30)
d.Dates.dt.time == dtime(9, 30)
Boolean
d.Dates.dt.time == '09:30:00'
import pandas as pd
from datetime import time as dtime
# test dataframe
d = pd.DataFrame({'Dates': ['2020-01-02 09:30:00', '2020-01-02 09:31:00', '2020-01-02 09:32:00', '2020-01-02 09:33:00', '2020-01-02 09:34:00', '2020-01-02 09:35:00', '2020-01-02 16:00:00'], 'Open': [3247.19, 3247.19, 3245.07, 3244.89, 3247.38, 3246.89, 3247.19], 'Close': [3245.22, 3245.22, 3244.66, 3247.61, 3246.92, 3249.09, 3245.22]})
# display(d)
Dates Open Close
0 2020-01-02 09:30:00 3247.19 3245.22
1 2020-01-02 09:31:00 3247.19 3245.22
2 2020-01-02 09:32:00 3245.07 3244.66
3 2020-01-02 09:33:00 3244.89 3247.61
4 2020-01-02 09:34:00 3247.38 3246.92
5 2020-01-02 09:35:00 3246.89 3249.09
6 2020-01-02 16:00:00 3247.19 3245.22
# verify Dates is a datetime format
d.Dates = pd.to_datetime(d.Dates)
# use Boolean selection for 9:30 and 16:00 (4pm)
d = d[(d.Dates.dt.time == dtime(9, 30)) | (d.Dates.dt.time == dtime(16, 0))].copy()
# set the index
d.set_index('Dates', inplace=True)
# display(d)
Open Close
Dates
2020-01-02 09:30:00 3247.19 3245.22
2020-01-02 16:00:00 3247.19 3245.22
推荐阅读
- ionic-framework - 自定义验证器反应形式离子
- python - PyQt5 QSqlDatabase:未加载 ubuntu 的 QMYSQL 驱动程序
- django - 在 Django 中获取 RelatedObjectDoesNotExist 错误,如果不存在则想创建新对象
- python - Scrapy Cloud 跳过循环
- colors - 根据列中的前一个单元格格式化列中的单元格 - Excel 2019
- youtube - Ghost cms youtube 视频嵌入大小
- vue.js - 使用 nuxt-link 时 IntersectionObserver 不起作用
- list - 在 Kotlin 中将字符串日期转换为时间戳
- javascript - Javascript getElementsByTagName 为某些标签返回空列表,并适用于其他一些标签
- javascript - 模块解析失败:号码无效