使用持续时间匹配组合三个不同的时间戳数据帧

2024-04-06

我有三个具有不同数据帧和频率的数据帧。我想将它们组合成一个数据框。

第一个数据框收集来自太阳的阳光,如下所示:

df1 = 
    index                 light_data
05/01/2019 06:54:00.000  10
05/01/2019 06:55:00.000  20
05/01/2019 06:56:00.000  30
05/01/2019 06:57:00.000  40
05/01/2019 06:59:00.000  50
05/01/2019 07:01:00.000  60
05/01/2019 07:03:00.000  70
05/01/2019 07:04:00.000  80
05/01/2019 07:06:00.000  90

第二个数据框从 A 单元收集太阳能

df2 = 
      index                   P1
    05/01/2019 06:54:24.000  100
    05/01/2019 06:59:32.000  200
    05/01/2019 07:04:56.000  300

第三个数据框从 B 单元收集太阳能

df3 = 
       index                  P2
    05/01/2019 06:56:45.000  400
    05/01/2019 07:01:21.000  500
    05/01/2019 07:06:34.000  600

以上三项是来自现场的测量结果。三个具有不同的时间戳。现在我想将所有三个组合成具有一个时间戳的数据帧。

  1. df1数据每分钟发生一次
  2. df2 and df3每五分钟在不同时间发生一次。
  3. 将三个数据框与df2时间戳作为参考索引,没有秒信息。

最后,我希望输出如下所示:

df_combine =     
         combine_index        P1   light_data1    P2   light_data2
        05/01/2019 06:54:00  100     10          400       30
        05/01/2019 06:59:00  200     50          500       60
        05/01/2019 07:04:00  300     80          600       90
   # Note: combine_index is df2 index with no seconds

我正在使用的好问题reindex with nearest如方法1

df1['row']=df1.index
s1=df1.reindex(df2.index,method='nearest')
s2=df1.reindex(df3.index,method='nearest')
s1=s1.join(df2).set_index('row')
s2=s2.join(df3).set_index('row')

pd.concat([s1,s2.reindex(s1.index,method='nearest')],1)
Out[67]: 
                     light_data    A  light_data    B
row                                                  
2019-05-01 06:54:00          10  100          40  400
2019-05-01 06:59:00          50  200          60  500
2019-05-01 07:04:00          80  300          90  600

或者在最后一行使用merge_asof

pd.merge_asof(s1,s2,left_index=True,right_index=True,direction='nearest')
Out[81]: 
                     light_data_x    A  light_data_y    B
row                                                      
2019-05-01 06:54:00            10  100            40  400
2019-05-01 06:59:00            50  200            40  400
2019-05-01 07:04:00            80  300            90  600

使其可扩展

df1['row']=df1.index

l=[]
for i,x in enumerate([df2,df3]):
    s1=df1.reindex(x.index,method='nearest')
    if i==0:
        l.append(s1.join(x).set_index('row').add_suffix(x.columns[0].str[-1]))
    else :
        l.append(s1.join(x).set_index('row').reindex(l[0].index,method='nearest').add_suffix(x.columns[0].str[-1]))
pd.concat(l,1)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用持续时间匹配组合三个不同的时间戳数据帧 的相关文章

  • NumPy linalg.eig

    我有这个烦人的问题 但我还没有弄清楚 我有一个矩阵 我想找到特征向量 所以我写 val vec np linalg eig mymatrix 然后我得到了 vec 我的问题是 当我小组中的其他人对相同的矩阵 mymatrix 做同样的事情时
  • 从sklearn PCA获取特征值和向量

    如何获取 PCA 应用程序的特征值和特征向量 from sklearn decomposition import PCA clf PCA 0 98 whiten True converse 98 variance X train clf f
  • 如何在VIM中设置文件的正确路径?

    每当我击中 pwd在 vim 中命令总是返回路径C Windows system32 即使我在桌面上的 Python 文件中 所以每当我跑步时 python 命令返回 python can t open file Users myname
  • 如何在Python中高效地添加稀疏矩阵

    我想知道如何在Python中有效地添加稀疏矩阵 我有一个程序 可以将大任务分解为子任务 并将它们分配到多个 CPU 上 每个子任务都会产生一个结果 一个 scipy 稀疏矩阵 格式为 lil matrix 稀疏矩阵尺寸为 100000x50
  • ValueError:不支持连续[重复]

    这个问题在这里已经有答案了 我正在使用 GridSearchCV 进行线性回归的交叉验证 不是分类器也不是逻辑回归 我还使用 StandardScaler 对 X 进行标准化 我的数据框有 17 个特征 X 和 5 个目标 y 观察 约11
  • 如何根据 HTTP 请求使用 Python 和 Flask 执行 shell 命令并流输出?

    下列的这个帖子 https stackoverflow com questions 15092961 how to continuously display python output in a webpage 我能够tail f网页的日志
  • 对使用 importlib.util 导入的对象进行酸洗

    我在使用Python的pickle时遇到了一个问题 我需要通过将文件路径提供给 importlib util 来加载一些 Python 模块 如下所示 import importlib util spec importlib util sp
  • 如何从 JSON 响应重定向?

    所以我尝试使用 Flask 和 Javascript 上传器 Dropzone 上传文件并在上传完成后重定向 文件上传正常 但在烧瓶中使用传统的重定向 return redirect http somesite com 不执行任何操作 页面
  • 迭代列表的奇怪速度差异

    我创建了两个重复两个不同值的长列表 在第一个列表中 值交替出现 在第二个列表中 一个值出现在另一个值之前 a1 object object 10 6 a2 a1 2 a1 1 2 然后我迭代它们 不对它们执行任何操作 for in a1 p
  • Werkzeug 中的线程和本地代理。用法

    首先 我想确保我正确理解了功能的分配 分配本地代理功能以通过线程内的模块 包 共享变量 对象 我对吗 其次 用法对我来说仍然不清楚 也许是因为我误解了作业 我用烧瓶 如果我有两个 或更多 模块 A B 我想将对象C从模块A导入到模块B 但我
  • 使用 pybtex 将 bibtex 转换为格式化的 HTML 参考书目,例如哈佛风格

    我正在使用 Django 并将 bibtex 存储在我的模型中 并且希望能够以格式化 HTML 字符串的形式向我的视图传递引用 使其看起来像哈佛引用样式 使用中描述的方法Pybtex 无法识别 bibtex 条目 https stackov
  • 以编程方式使用 Sphinx 特定指令解析 .rst 文件

    我希望能够在 Python 中解析基于 sphinx 的 rst 以便进一步处理和检查 就像是 import sphinx p sphinx parse path to file rst do something with p 似乎在 do
  • Python对象初始化性能

    我只是做了一些快速的性能测试 我注意到一般情况下初始化列表比显式初始化列表慢大约四到六倍 这些可能是错误的术语 我不确定这里的行话 例如 gt gt gt import timeit gt gt gt print timeit timeit
  • OSX 上的 locale.getlocale() 问题

    我需要获取系统区域设置来执行许多操作 最终我想使用 gettext 翻译我的应用程序 我打算在 Linux 和 OSX 上分发它 但我在 OSX Snow Leopard 上遇到了问题 python Python 2 5 2 r252 60
  • 从列表python的单个列表中删除子列表

    我已经经历过从列表列表中删除子列表 https stackoverflow com questions 47209786 removing sublists from a list of lists 但当我为我的数据集扩展它时 它不适用于我
  • Python问题:打开和关闭文件返回语法错误

    大家好 我发现了这个有用的 python 脚本 它允许我从网站获取一些天气数据 我将创建一个文件和其中的数据集 有些东西不起作用 它返回此错误 File
  • 如何绘制堆积比例图?

    我有一个数据框 x lt data frame id letters 1 3 val0 1 3 val1 4 6 val2 7 9 id val0 val1 val2 1 a 1 4 7 2 b 2 5 8 3 c 3 6 9 我想绘制一个
  • 操作错误:(sqlite3.OperationalError) SQL 变量太多,同时将 SQL 与数据帧一起使用

    我有一个熊猫数据框 如下所示 activity User Id 0 VIEWED MOVIE 158d292ec18a49 1 VIEWED MOVIE 158d292ec18a49 2 VIEWED MOVIE 158d292ec18a4
  • [cocos2d-x]当我尝试在 Windows 10 中运行“python android-build.py -p 19 cpp-tests”时出现错误

    当我尝试运行命令时python android build p cpp tests 我收到如图所示的错误 在此之前 我收到了另一条关于 Android SDK Tools 版本兼容性的错误消息 所以 我只是将 sdk 版本从 26 0 0
  • python 中的 after() 与 update()

    我是 python 新手 开始使用 tkinter 作为画布 到目前为止 我使用 update 来更新我的画布 但还有一个 after 方法 谁能给我解释一下这个函数 请举个例子 两者之间有什么区别 root after integer c

随机推荐