pandas 中日期时间索引的算术运算

2024-03-25

在 pandas 中,您可以通过基于经典整数位置/行的索引或基于日期时间的索引来访问时间序列的特定位置。可以使用基本算术运算来操作基于整数的索引,例如如果我有一个integer_index对于频率为 12 小时的时间序列,并且我想恰好在此之前的一天访问该条目,我可以简单地执行以下操作integer_index - 2。然而,现实世界的数据并不总是完美的,有时会丢失行。在这种情况下,此方法会失败,并且能够使用基于日期时间的索引和减法会很有帮助,例如,one day从这个索引。我怎样才能做到这一点?

示例脚本:

# generate a sample time series
import pandas as pd
s = pd.Series(["A", "B", "C", "D", "E"], index=pd.date_range("2000-01-01", periods=5, freq="12h"))
print s

2000-01-01 00:00:00    A
2000-01-01 12:00:00    B
2000-01-02 00:00:00    C
2000-01-02 12:00:00    D
2000-01-03 00:00:00    E
Freq: 12H, dtype: object

# these to indices should access the same value ("C")
integer_index = 2
date_index = "2000-01-02 00:00"

print s[integer_index]  # prints "C"
print s[date_index]  # prints "C"

# I can access the value one day earlier by subtracting 2 from the integer index
print s[integer_index - 2]  # prints A

# how can I subtract one day from the date index?
print s[date_index - 1]  # raises an error 

这个问题的背景可以在我之前提交的文章中找到:

用相邻日期的数据平均值填补数据空白 https://stackoverflow.com/questions/25909115/fill-data-gaps-with-average-of-data-from-adjacent-days

用户 JohnE 找到了解决我的问题的方法,该方法使用基于整数位置的索引。他通过对时间序列重新采样来确保我拥有等间距的数据。


您的日期时间索引不是基于字符串,而是基于DatetimeIndex http://pandas.pydata.org/pandas-docs/stable/timeseries.html#datetimeindex意味着你可以使用datetime https://docs.python.org/3.4/library/datetime.html#datetime-objects适当索引的对象,而不是字符串looks就像约会一样。

下面的代码转换date_index into a datetime对象,然后使用timedelta(days=1) https://docs.python.org/3.4/library/datetime.html#timedelta-objects从中减去“一天”。

# generate a sample time series
import pandas as pd
from datetime import datetime, timedelta

s = pd.Series(["A", "B", "C", "D", "E"], index=pd.date_range("2000-01-01", periods=5, freq="12h"))
print(s)

# these two indices should access the same value ("C")
integer_index = 2
# Converts the string into a datetime object
date_index = datetime.strptime("2000-01-02 00:00", "%Y-%m-%d %H:%M")
print(date_index) # 2000-01-02 00:00:00

print(s[integer_index])  # prints "C"
print(s[date_index])  # prints "C"


print(s[integer_index - 2])  # prints "A"

one_day = timedelta(days=1)
print(s[date_index - one_day]) # prints "A"
print(date_index - one_day) # 2000-01-01 00:00:00
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

pandas 中日期时间索引的算术运算 的相关文章

  • 以矢量化方式在另一个 DataFrame 中查找包含值子集的行

    如何匹配此 DataFrame 中的值source car id lat lon 0 100 10 0 15 0 1 100 12 0 10 0 2 100 09 0 08 0 3 110 23 0 12 0 4 110 18 0 32 0
  • 正则表达式,选择最接近的匹配

    假设以下单词序列 BLA text text text text text text BLA text text text text LOOK text text text BLA text text BLA 我想做的是将 BLA 中的文本
  • Perl 是否有相当于 Python 的 `if __name__ == '__main__'` 的功能?

    有没有一种方法可以确定当前文件是否是 Perl 源中正在执行的文件 在 Python 中 我们使用以下结构来做到这一点 if name main This file is being executed raise NotImplemente
  • 使用多级解决方案计算二维网格中的最近邻

    我有一个问题 在 x y 大小的网格中 我提供了一个点 并且我需要找到最近的邻居 在实践中 我试图在 pygame 中找到距离光标最近的点 该点跨越颜色距离阈值 计算如下 sqrt rgb1 0 rgb2 0 2 rgb1 1 rgb2 1
  • scikit-learn 和tensorflow 有什么区别?可以一起使用它们吗?

    对于这个问题我无法得到满意的答案 据我了解 TensorFlow是一个数值计算库 经常用于深度学习应用 而Scikit learn是一个通用机器学习框架 但它们之间的确切区别是什么 TensorFlow 的目的和功能是什么 我可以一起使用它
  • Django 模型字段默认基于另一个模型字段

    我使用 Django Admin 构建一个管理站点 有两张表 一张是ModelA其中有数据 另一个是ModelB里面什么也没有 如果一个模型字段b b in ModelB为None 可以显示在网页上 值为ModelA的场a b 我不知道该怎
  • 按多个键分组并对字典列表的值进行汇总/平均值

    在Python中按多个键进行分组并对字典列表进行汇总 平均值的最Pythonic方法是什么 假设我有一个字典列表 如下所示 input dept 001 sku foo transId uniqueId1 qty 100 dept 001
  • 返回上个月的日期时间对象

    如果 timedelta 在它的构造函数中有一个月份参数就好了 那么最简单的方法是什么 EDIT 正如下面指出的那样 我并没有认真考虑这一点 我真正想要的是上个月的任何一天 因为最终我只会获取年份和月份 因此 给定一个日期时间对象 返回的最
  • Python 3在for循环中更改字典键的值不起作用

    我的 python 3 代码没有按预期工作 def addFunc x y print x y def subABC x y z print x y z def doublePower base exp print 2 base exp d
  • 如何使用 Celery 多工作人员启用自动缩放?

    命令celery worker A proj autoscale 10 1 loglevel info启动具有自动缩放功能的工作人员 当创建多个工人时 me mypc projects x celery multi start mywork
  • uri 警告中缺少端口:使用 Python OpenCV cv2.VideoCapture() 打开文件时出错

    当我尝试流式传输 ipcam 时 出现了如下所示的错误 tcp 000000000048c640 uri 中缺少端口 警告 打开文件时出错 build opencv modules videoio src cap ffmpeg impl h
  • 根据第三个变量更改散点图中的标记样式

    我正在处理多列字典 我想绘制两列 然后根据第三列和第四列更改标记的颜色和样式 我很难改变 pylab 散点图中的标记样式 我的方法适用于颜色 不幸的是不适用于标记样式 x 1 2 3 4 5 6 y 1 3 4 5 6 7 m k l l
  • Jupyter Notebook 中的深色模式绘图 - Python

    我正在使用 Jupyter Notebook 目前正在使用 JupyterThemes 的深色日光主题 我注意到我的绘图不是处于黑暗模式 并且文本仍然是黑色并且在日光照射的背景上无法读取 JupyterThemes 的自述文件建议在 ipy
  • 如何分析组合的 python 和 c 代码

    我有一个由多个 python 脚本组成的应用程序 其中一些脚本正在调用 C 代码 该应用程序现在的运行速度比以前慢得多 因此我想对其进行分析以查看问题所在 是否有工具 软件包或只是一种分析此类应用程序的方法 有一个工具可以将 python
  • 根据列索引重命名 Dataframe 列

    是否有内置函数可以按索引重命名 pandas 数据框 我以为我知道列标题的名称 但事实证明第二列中有一些十六进制字符 根据我接收数据的方式 我将来可能会在第 2 列中遇到这个问题 因此我无法将这些特定的十六进制字符硬编码到 datafram
  • 在 matplotlib 中绘制多边形的并集[重复]

    这个问题在这里已经有答案了 我正在尝试绘制几个多边形的并集matplotlib 具有一定的 alpha 水平 我当前的代码在交叉点处颜色较深 有没有办法让交叉路口与其他地方的颜色相同 import matplotlib pyplot as
  • python dicttoxml 多次使用相同的键

    我正在尝试做如下所示的 xml
  • 在 scipy 中创建新的发行版

    我试图根据我拥有的一些数据创建一个分布 然后从该分布中随机抽取 这是我所拥有的 from scipy import stats import numpy def getDistribution data kernel stats gauss
  • 在父类中访问子类变量

    我有一个父类和一个继承的子类 我想知道如何访问我的父类中的子类变量 我尝试了这个但失败了 class Parent object def init self print x class Child Parent x 1 x Child Er
  • Java/Python 中的快速 IPC/Socket 通信

    我的应用程序中需要两个进程 Java 和 Python 进行通信 我注意到套接字通信占用了 93 的运行时间 为什么通讯这么慢 我应该寻找套接字通信的替代方案还是可以使其更快 更新 我发现了一个简单的修复方法 由于某些未知原因 缓冲输出流似

随机推荐

  • 动态创建 formGroup 时 control.setParent 不是函数

    我正在使用 Angular5 并且有一个字段列表 每个字段都有一个名称和 FormControl 我尝试使用此代码将控件动态添加到组中 但出现错误 const formControlFields name field1 control nu
  • 如何在flutter中将图像从base64字符串保存到文件?

    我有 64 进制图像字符串 如何将该图像保存到用户的移动设备 这是我尝试过的 var response await http post Utility serverUrl body body final encodedStr data re
  • SQL(Java,h2):检索我刚刚插入数据库的单个项目的唯一 ID 的最佳方法是什么? [复制]

    这个问题在这里已经有答案了 我目前的方法是这样的 SELECT TOP 1 ID FROM DATAENTRY ORDER BY ID DESC 这假设最新插入的项目始终具有最高的唯一 ID 主键 自动增量 这里有些不对劲 备择方案 如果
  • 不间断地播放多部分视频 (HTML5)

    我想将视频分成几部分 但在浏览器中将其作为单个视频播放 在我最初的尝试中 我使用 ffmpeg 分割视频 并使用 onending 事件来播放下一部分 缺点是它会在下一部分开始之前中断 此外 不再可能使用内置控件进行搜索 因此 我想知道是否
  • 使用 Android 模拟器捕获和保存图像时出现空指针异常

    我正在尝试通过 Android 模拟器捕获并保存图像 正在捕获图像 但保存的文件已损坏 可能是什么原因造成的 谁能帮我找出可能的错误点 下面是我的代码 public void onCreate Bundle savedInstanceSta
  • ILogger (ASP.NET Core) 日志被调用甚至 IsEnabled 返回 false

    我试图理解的目的已启用 https learn microsoft com en us aspnet core api microsoft extensions logging ilogger Microsoft Extensions Lo
  • RStudio 达到最大文件大小

    我已经下载了 RStudio 在打开我的代码所在的文件时 我似乎已经达到了容量限制 The file is 2 3MB the maximum file size is 2MB The file is too large to open a
  • 使用 jQuery 从 ASP.NET 向用户显示消息

    在 ASP NET 中开发各种 Web 应用程序时 我发现自己需要在执行各种操作后将消息发送回用户 例如 文件是否已成功上传或数据库记录已更新 另外 如果有错误我想通知用户 到目前为止 我一直在创建包含要向用户显示的消息的服务器端变量 然后
  • 如何捕获 socket.io 错误并防止它们出现在控制台中?

    我在node js 上运行socket io 并在Apache 网站上运行socket io 客户端 如果我不启动 node js 服务器并加载客户端页面 则会触发错误事件并显示空错误消息 这会导致以下控制台输出 GET http exam
  • Android:快速按下按钮会导致多个意图实例

    目前 我遇到一个错误 如果用户快速点击按钮 该按钮所附加的意图将多次触发 从而导致需要再次回溯的该意图堆栈 我怎样才能避免这种情况或补救这种情况 谢谢 k 这是 onClickListener 的内部 我在这里设置了布尔值 然后在过程结束时
  • 使用 Spreadsheetml 换行文本的样式

    我使用 xslt 生成电子表格 并想要一个带有换行文本的单元格 或者更好 带有换行符的文本 所以我的 xslt 为工作表数据生成以下 XML
  • 在 osx 上批量将 .py(文本文件)转换为 .pdf

    我教授 Python 课程 并且有大量提交用于考试的 py 文件 我想将所有这些内容转换为 pdf 以便我可以在 ipad 上的 IAnnotate 中打开它们 对其进行标记并将其返回给学生 我怎样才能在批处理模式下进行这样的转换 在小牛队
  • 在以破折号开头的目录中查找

    find将文件名开头的破折号解释为选项的开头 使用熟悉的 技巧不起作用 因为选项位于文件名之后 引用无效 并将第一个破折号替换为 也不行 通常鼓励用户在此类文件名之前添加 但是如果我不知道给定的路径是绝对路径还是相对路径 我该怎么办 编辑
  • rdstate 和 rdbuf 中的 rd 代表什么?

    C 标准I O库中有两个名称 rdstate and rdbuf 我知道 state 和 buf 但是 rd 是什么 PS 我相信我知道如何使用rdstate and rdbuf 不要教我那个 我认为它们代表 read 类似于大多数人使用
  • 如何使用 dbus-send 调用 org.bluez.Adapter1.StartDiscovery?

    我正在尝试使用 Bluez 5 44 进行交互dbus send https dbus freedesktop org doc dbus send 1 html命令行工具 我似乎无法让它正确启动发现 尽管当我使用时它工作得很好bluetoo
  • 使用 POI Apache 从 Excel 读取数据时将数据添加到 ArrayList

    我正在尝试使用 POI Apache 从 Excel 工作表中读取数据 我遇到的问题是我想同时读取一行中所有单元格的数据并将其存储在 Type Class 的 ArrayList 中 但输出只是逐个单元格 这是打开 Excel 工作表并逐个
  • 从 Windows 媒体库获取目录列表

    有没有什么方法可以以编程方式查找当前在 Windows 媒体库上设置的目录列表 例如 假设我有以下库 我为葡萄牙语表示歉意 但你会明白的 我怎样才能以编程方式获得这些三个目录路径列于视频库 D Filmes D Series D Video
  • 如何使用 Scala 中的任何库将通用潜在嵌套映射 Map[String, Any] 转换为案例类?

    我对反射并没有太多的兴趣 这个答案在某些情况下使用无形的作品 但似乎有很多边缘情况 将 Map String Any 转换为 case 类的无形状代码无法处理可选子结构 https stackoverflow com questions 5
  • 检测全屏模式

    现代桌面版 IE 10 始终是全屏的 有一个居住规范 https dvcs w3 org hg fullscreen raw file tip Overview html for fullscreenW3 上的伪类 但是当我尝试使用 jQu
  • pandas 中日期时间索引的算术运算

    在 pandas 中 您可以通过基于经典整数位置 行的索引或基于日期时间的索引来访问时间序列的特定位置 可以使用基本算术运算来操作基于整数的索引 例如如果我有一个integer index对于频率为 12 小时的时间序列 并且我想恰好在此之