在 pandas 数据框中添加缺失的时间

2024-03-03

我有一个pandas.DataFrame在列中带有时间戳。这些值以纪元为单位,间隔 0.1 秒。价值观如1488771900.100000, 1488771900.200000等等。但是,存在缺失值。所以我有1488794389.500000进而1488794389.900000之间有 3 个缺失值。我想在数据框中插入行,该行中的最大值和最小值之间缺少值。所以如果最小值是1488771900.000000最大值是1488794660.000000,我想插入所有值均以 0.1 秒分隔的行,并且在所有其他列中插入 NA。

我在这看到了一个答案link https://stackoverflow.com/questions/13370525/filling-continuous-pandas-dataframe-from-sparse-dataframe,但无法复制相同的内容。

如何执行此操作?


您可以使用以下方式填写您错过的时间pandas.DataFrame.resample。需要注意的是数据框需要有一个pandas.DateTimeIndex。在您的情况下,时间可能会存储为自纪元以来以秒为单位的浮点数,并且需要在重新采样之前进行转换。这是一个将执行该操作的函数。

Code:

import datetime as dt
import pandas as pd

def resample(dataframe, time_column, sample_period):
    # make a copy of the dataframe
    dataframe = dataframe.copy()

    # convert epoch times to datetime
    dataframe.time = dataframe.time.apply(
        lambda ts: dt.datetime.fromtimestamp(ts))

    # make the datetimes into an index
    dataframe.set_index(time_column, inplace=True)

    # resample to desired period
    dataframe = dataframe.resample(sample_period).asfreq().reset_index()

    # convert datetimes back to epoch
    epoch = dt.datetime.fromtimestamp(0)
    dataframe.time = dataframe.time.apply(
        lambda ts: (ts - epoch).total_seconds())
    return dataframe

测试代码:

values = [
    (1488771900.10, 'a'),
    (1488771900.20, 'b'),
    (1488771900.30, 'c'),
    (1488771900.60, 'f'),
]
columns = ['time', 'value']
df = pd.DataFrame(values, columns=columns)
print(df)

new_df = resample(df, 'time', '100ms')
print(new_df)

Results:

           time value
0  1.488772e+09     a
1  1.488772e+09     b
2  1.488772e+09     c
3  1.488772e+09     f

           time value
0  1.488772e+09     a
1  1.488772e+09     b
2  1.488772e+09     c
3  1.488772e+09   NaN
4  1.488772e+09   NaN
5  1.488772e+09     f
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 pandas 数据框中添加缺失的时间 的相关文章

随机推荐

  • ffmpeg、libav 和 avconv 之间有什么区别和相似之处?

    当我跑步时ffmpeg在 Ubuntu 上 它显示 ffmpeg ffmpeg version v0 8 Copyright c 2000 2011 the Libav developers built on Feb 28 2012 13
  • 如何使 Windows 10 枢轴/选项卡标题全宽屏幕

    如何使枢轴 选项卡标题使每个单独的选项卡具有相同的宽度并拉伸枢轴标题的整个宽度而不延伸出屏幕 特别是对于移动设备 我还没有找到如何做到这一点的例子 这就是我想要实现的目标 如何使枢轴 选项卡标题使每个单独的选项卡具有相同的宽度并拉伸整个宽度
  • 用于将结构类型映射到枚举的 C++ 模板?

    我有类似的东西 struct A struct B struct C class MyEnum public enum Value a b c template
  • 如何通过环境变量设置 Java 的最小和最大堆大小?

    如何通过环境变量设置 Java 的最小和最大堆大小 我知道可以在启动java时设置堆大小 但我想通过我的服务器上的环境变量来调整它 您不能直接使用环境变量来做到这一点 您需要使用传递给 java 命令的一组 非标准 选项 运行 java X
  • 如何在没有扩展程序的情况下在 Chrome 中测量像素?

    由于工作中的安全限制 我不被允许安装 Chrome 扩展程序 Chrome 在开发者工具中内置了一个标尺 但我不知道如何像标尺允许的那样定义起点和终点 是否有无需安装 Chrome 扩展程序即可测量像素的工具或技术 您可以创建自己的标尺功能
  • 如何设置仅显示月份和年份的日期选择器的日期

    我正在尝试显示一个仅显示月份 年份菜单的日期选择器 就像这个 Q 中那样jquery 日期选择器仅显示月份年份 https stackoverflow com questions 2208480 jquery date picker to
  • 来自多个数据库的 Hibernate 实体

    我们的数据模型分为两个数据库上的模式 除了一些在两者之间桥接的单键关系之外 这些模式是单独使用的 没有跨两个数据库的写入事务 类似这个问题使用 Hibernate 连接不同数据库中的 2 个表 https stackoverflow com
  • 为什么覆盖会改变列名

    我使用的是 rev 监听器的默认实现 正如预期的那样 我的 REVINFO 表中的列是 revtstmp 和 rev 然而 当我覆盖默认值时 我所做的只是 MyRevisionEntity extends DefaultRevisionEn
  • 是否有在多个事件侦听器上执行逻辑的设计模式

    我有在多个不同事件的步骤上执行的逻辑 例如 在 mousedown 上完成一些逻辑 这会更改 mousemove 使用的某些共享状态 这也会更改最终 mouseup 使用的某些共享状态 例如它可能看起来像这样 function handle
  • 检测用户何时将数据输入 edittext 立即显示答案[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 如何检测一个字符是否被输入到 Edi
  • 使用 array_diff 比较两个数组

    我有以下代码 并尝试将两个数组与 array diff 进行比较 但我一直没有得到任何结果 我不确定这是否重要 但数组中有很多字段 我真的只想比较 1 个字段 这可能吗 我缺少什么
  • 如何在点击后隐藏横幅并使用本地存储保存?

    我是 Java 脚本新手 在用户单击 Cookie 横幅上的 接受 后 我不知道如何保存信息 本地存储 一旦他单击 接受 Cookie 横幅就会消失 我想保存因此 当他进入下一页或重新加载页面时 他不会再次收到 Cookie Banner
  • Bash - HTML 内容的正则表达式

    我正在学习 Bash 脚本 并且需要一些帮助来理解正则表达式 我有一个基本上是网页 html 的变量 使用 wget 导出 currentURL https www example com currentPage wget q O curr
  • 嵌套 TextBlock 和超链接,如何在 C# 中复制此 XAML?

    我有这个 XAML
  • 创建自定义 Object3D 类

    我是来自 AS3 Away3D 背景的 THREE js 新手 我正在尝试创建一个扩展 THREE Object3D 的自定义对象类以添加到我的场景中 CustomObject会封装很多行为属性和方法 理想情况下 我想传递每个 Custom
  • Android 下载管理器所有下载完成后如何通知

    我正在使用 Android 下载管理器类 所有下载完成后我需要写 下载完成 我尝试过一些东西并且它有效 但在这里 它是在逐个文件完成后写入的 我只需要写一次 全部完成后 我也尝试过没有光标 但我没能实现 public class Downl
  • XCode 链接到 OpenSSL 库

    我有一个需要链接 openssl 库的项目 尽管在编译时遇到了一些问题 include
  • Netbeans 7.2.1 损坏的参考:dist.jar(在 JavaFX 文件上编码时)

    我试图通过阅读一些教程来学习 JavaFX 但是 我什至无法实现 helloworld 应用程序 NetBeans 说道 错误 无法找到或加载主类 helloworld NewFXMain Java 结果 1 然后当我检查 属性 gt 库
  • pdf.js 只适用于某些 pdf 文件吗?

    我正在尝试使用将 pdf 页面转换为画布pdf js 我使用了答案使用 pdf js 和 ImageData 将 pdf 渲染到单个 Canvas https stackoverflow com questions 15341010 ren
  • 在 pandas 数据框中添加缺失的时间

    我有一个pandas DataFrame在列中带有时间戳 这些值以纪元为单位 间隔 0 1 秒 价值观如1488771900 100000 1488771900 200000等等 但是 存在缺失值 所以我有1488794389 500000