当时间戳不属于索引时,如何按时间戳对数据帧进行切片?

2024-04-25

如何使用时间戳来分割我的 pandas 数据帧?

我打电话时得到以下价格df30m:

               Timestamp    Open    High     Low   Close     Volume
0    2016-05-01 19:30:00  449.80  450.13  449.80  449.90    74.1760
1    2016-05-01 20:00:00  449.90  450.27  449.90  450.07    63.5840
2    2016-05-01 20:30:00  450.12  451.00  450.02  450.51    64.1080
3    2016-05-01 21:00:00  450.51  452.05  450.50  451.22    75.7390
4    2016-05-01 21:30:00  451.21  451.64  450.81  450.87    71.1190
5    2016-05-01 22:00:00  450.87  452.05  450.87  451.07    73.8430
6    2016-05-01 22:30:00  451.09  451.70  450.91  450.91    68.1490
7    2016-05-01 23:00:00  450.91  450.98  449.97  450.61    84.5430
8    2016-05-01 23:30:00  450.61  451.50  450.55  451.45   111.2370
9    2016-05-02 00:00:00  451.47  452.31  450.69  451.19   190.0750
10   2016-05-02 00:30:00  451.20  451.68  450.45  450.82   186.0930
11   2016-05-02 01:00:00  450.83  451.64  450.65  450.73   112.4630
12   2016-05-02 01:30:00  450.73  451.10  450.31  450.56   137.7530
13   2016-05-02 02:00:00  450.56  452.01  449.98  450.27   151.6140
14   2016-05-02 02:30:00  450.27  451.30  450.23  451.11    99.5490
15   2016-05-02 03:00:00  451.29  451.29  450.17  450.33   178.9860
16   2016-05-02 03:30:00  450.44  451.20  450.44  450.75    65.1480
17   2016-05-02 04:00:00  450.79  451.20  450.75  451.00    78.0430
18   2016-05-02 04:30:00  451.00  451.11  450.85  451.11    64.7250
19   2016-05-02 05:00:00  451.11  451.64  451.00  451.12    73.4840
20   2016-05-02 05:30:00  451.12  451.83  450.67  451.33    94.1950
21   2016-05-02 06:00:00  451.35  451.37  450.17  450.18   227.7480
22   2016-05-02 06:30:00  450.18  450.43  450.17  450.17    83.0270
23   2016-05-02 07:00:00  450.17  450.43  448.90  449.41   170.4950
24   2016-05-02 07:30:00  449.38  450.00  448.56  448.56   243.0420
25   2016-05-02 08:00:00  448.67  448.67  446.21  448.00   525.7090
26   2016-05-02 08:30:00  448.12  448.49  445.00  445.00   673.5810
27   2016-05-02 09:00:00  445.00  445.51  440.11  444.20  1392.9049
28   2016-05-02 09:30:00  444.24  444.36  440.11  442.00   438.6860
29   2016-05-02 10:00:00  441.91  443.20  440.05  442.24   400.5850
...                  ...     ...     ...     ...     ...        ...
1651 2016-06-05 05:00:00  578.74  579.00  577.92  578.39    93.6980
1652 2016-06-05 05:30:00  578.40  578.48  574.52  575.26    98.1580
1653 2016-06-05 06:00:00  575.24  576.02  572.47  574.06   126.8620
1654 2016-06-05 06:30:00  574.06  576.35  574.06  576.34   125.4120
1655 2016-06-05 07:00:00  576.34  576.34  574.73  575.83    34.8070
1656 2016-06-05 07:30:00  575.84  576.27  574.91  575.58    74.8180
1657 2016-06-05 08:00:00  575.58  578.57  575.58  578.36   123.2560
1658 2016-06-05 08:30:00  578.23  578.47  576.18  577.25    43.6590
1659 2016-06-05 09:00:00  577.20  578.85  576.70  577.27    95.3900
1660 2016-06-05 09:30:00  577.36  578.18  576.70  576.70    51.0250
1661 2016-06-05 10:00:00  576.70  576.70  574.55  575.39   101.0590
1662 2016-06-05 10:30:00  575.41  576.44  575.18  576.44    86.4340
1663 2016-06-05 11:00:00  576.50  577.89  576.50  577.80   113.0600
1664 2016-06-05 11:30:00  577.80  578.10  576.03  576.98    57.5050
1665 2016-06-05 12:00:00  576.98  577.55  576.59  577.54    56.1070
1666 2016-06-05 12:30:00  577.54  583.00  570.93  572.82   872.8200
1667 2016-06-05 13:00:00  572.94  573.19  569.64  572.50   310.0020
1668 2016-06-05 13:30:00  572.50  574.37  572.50  574.09    59.3410
1669 2016-06-05 14:00:00  574.09  574.19  571.51  572.98   155.4310
1670 2016-06-05 14:30:00  572.98  573.57  572.02  573.47    76.9270
1671 2016-06-05 15:00:00  573.62  575.10  572.97  573.37    59.1430
1672 2016-06-05 15:30:00  573.37  574.39  573.37  574.38    77.3270
1673 2016-06-05 16:00:00  574.39  575.59  574.38  575.59    52.0150
1674 2016-06-05 16:30:00  575.00  575.59  574.50  575.00    66.9300
1675 2016-06-05 17:00:00  575.00  576.83  574.38  576.60    50.2990
1676 2016-06-05 17:30:00  576.60  577.50  575.50  576.86   104.5200
1677 2016-06-05 18:00:00  576.86  577.21  575.44  575.80    55.3270
1678 2016-06-05 18:30:00  575.77  575.80  574.52  574.77    78.7760
1679 2016-06-05 19:00:00  574.73  575.18  572.52  574.47   126.4300
1680 2016-06-05 19:30:00  574.49  574.87  573.80  574.32    10.4930

正如您所看到的,它包含过去 35 天的数据,按 30 分钟的间隔分组。

我想在不同的时间窗口操纵这个价格历史记录。

因此,作为初学者的示例,我只想获取过去 1 天的信息。

如何过滤此数据框以显示过去 1 天的信息?

这是我尝试过的:

import datetime

d0 = datetime.datetime.today()
d1 = datetime.datetime.today() - datetime.timedelta(days=1)

print d0
>>> 2016-06-05 17:10:37.633824

print d1
>>> 2016-06-04 17:10:37.633967  

df_1d = df30m['Timestamp'] > d1

print df_1d

这返回给我一个充满 True 或 False 的 pandas 系列

0    False
1    False
2    False
3    False
4    False
...
1676    True
1677    True
1678    True
1679    True
1680    True

我也尝试过使用between_time() http://pandas.pydata.org/pandas-docs/stable/generated/pandas.DataFrame.between_time.html module.

df_1d = df30m.between_time(d0, d1)

但我收到以下错误消息:

TypeError: Index must be DatetimeIndex

拜托,有人可以告诉我一种Python式的方法来切片我的数据框吗?


您可以使用loc为您的数据建立索引。你知道你的时间戳是 datetime.datetime 格式还是 Pandas 时间戳吗?

df30m.loc[(df30m.Timestamp <= d0) & (df30m.Timestamp >= d1)]

您可以将索引设置为 Timestamp 列,然后按如下方式建立索引:

df.set_index('Timestamp', inplace=True)
df[d1:d0]
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当时间戳不属于索引时,如何按时间戳对数据帧进行切片? 的相关文章

  • 嵌套重组 - Django

    我有一个包含以下字段的模型 日期 员工 和 计划时间 每个员工对于不同的日期都有不同的计划工作时间 我正在尝试构建我的模板 其中员工按行列出 他们的计划工作时间列在正确的相应日期下的列中 像这样的东西 https i stack imgur
  • 属性错误:未找到下层;在 scikit-learn 中使用带有 CountVectorizer 的 Pipeline

    我有一个这样的语料库 X train this is an dummy example in reality this line is very long here is a last text in the training set 和一
  • 从两个字典创建一个新列表

    这是一个关于Python的问题 我有以下字典列表 listA t 1 tid 2 gtm 3 c1 4 id 111 t 3 tid 4 gtm 3 c1 4 c2 5 id 222 t 1 tid 2 gtm 3 c1 4 c2 5 id
  • 提高 pytesseract 从图像中正确识别文本的能力

    我正在尝试使用读取验证码pytesseract模块 大多数时候它都能提供准确的文本 但并非总是如此 这是读取图像 操作图像以及从图像中提取文本的代码 import cv2 import numpy as np import pytesser
  • CodingBat sum67:为什么这个解决方案是错误的?

    我正在解决以下codingbat问题 返回数组中数字的总和 但忽略以 6 开头并延伸到下一个 7 的数字部分 每个 6 后面至少有一个 7 如果没有数字则返回 0 sum67 1 2 2 5 sum67 1 2 2 6 99 99 7 5
  • 添加反斜杠而不转义[重复]

    这个问题在这里已经有答案了 我需要逃离 字符串中的 字符 问题是每当我string string replace 结果是 添加额外的反斜杠来转义原始反斜杠 如何删除这个多余的反斜杠 结果 仅显示 实际上字符串是 gt gt gt str g
  • 使用 theano 进行多处理

    我正在尝试将 theano 与 cpu 多处理和神经网络库 Keras 结合使用 I use device gpu标记并加载 keras 模型 然后 为了提取超过一百万张图像的特征 我使用多处理池 该函数看起来像这样 from keras
  • 解析器生成

    我正在做一个项目软件抄袭检测 我打算用C语言来做这件事 因为我应该创建一个令牌生成器和一个解析器 但我不知道从哪里开始 任何人都可以帮助我解决这个问题 我创建了一个令牌数据库 并将令牌与我的程序分开 接下来我想做的就是比较两个程序以查明它是
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • Python ttk.combobox 强制发布/打开

    我正在尝试扩展 ttk 组合框类以允许自动建议 我到目前为止的代码运行良好 但我想让它在输入一些文本后显示下拉列表 而不从小部件的输入部分移除焦点 我正在努力解决的部分是找到一种强制下拉的方法 在 python 文档中我找不到任何提及这一点
  • Python Pandas:将参数传递给 agg() 中的函数

    我试图通过使用不同类型的函数和参数值来减少 pandas 数据框中的数据 但是 我无法更改聚合函数中的默认参数 这是一个例子 gt gt gt df pd DataFrame x 1 np nan 2 1 y a a b b gt gt g
  • 使用 Python gdata 和 oAuth 2 对日历进行身份验证

    我正在将一个 Python 应用程序从 oAuth 1 迁移到 oAuth 2 该应用程序读取用户的 Google 日历提要 使用 oAuth 1 如果用户可以使用他的 GMail 进行身份验证 我的应用程序将打开浏览器 帐户并授权访问 我
  • 在 Mac OS x 10.7.5 中运行 Scrapy 所需的文件,使用 Python 2.7.3 IEPD_free(32 位)

    我是第一次测试 scrapy 使用命令安装后 sudo easy install U scrapy 一切似乎都运行正常 但是 当我运行时 scrapy startproject tutorial 我得到以下信息 luismacbookpro
  • 如何使用 Misc.imread 将图像分割为红色、绿色和蓝色通道

    我正在尝试将图像切片为 RGB 但在绘制这些图像时遇到问题 我使用此函数从某个文件夹获取所有图像 def get images path image type image list for filename in glob glob pat
  • 使用 PyQt5 拖放 QLabels

    我正在尝试使用 PyQt5 将 Qlabel 拖放到另一个 Qlabel 上 from PyQt5 QtWidgets import QApplication QWidget QToolTip QPushButton QMessageBox
  • Python 中的数据可用性图表

    我想知道Python是否有一些东西可以绘制具有多个变量的时间序列的数据可用性 下面显示了一个示例 取自Visavail js 时间数据可用性图表 https github com flrs visavail 1 description 以下
  • 如何从 Python 脚本捕获 Curl 的输出

    我想使用curl查找有关网页的信息 但在Python中 到目前为止我有这个 os system curl head www google com 如果我运行它 它会打印出 HTTP 1 1 200 OK Date Sun 15 Apr 20
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi
  • Pandas:根据是否为 ​​NaN 来移动列

    我有一个像这样的数据框 phone number 1 clean phone number 2 clean phone number 3 clean NaN NaN 8546987 8316589 8751369 NaN 4569874 N
  • Lua中按字符分割字符串

    我有像这样的字符串 ABC DEF 我需要将它们分开 字符并将两个部分分别分配给一个变量 在 Ruby 中 我会这样做 a b ABC DEF split 显然Lua没有这么简单的方法 经过一番挖掘后 我找不到一种简短的方法来实现我所追求的

随机推荐