【Pandas时间序列处理】Resample踩坑实录

Long story short,使用resample对一个含传感器id列的数据集进行重采样时遇到了无法保持id列不参与resample后的数学运算的问题,记录本人的尝试过程及最终解决方法。

可行方案

先来说最终的解决方案:

对传感器id列使用 groupby() 函数再对时间序列进行 resample(),避免了sum()等函数对传感器id列的处理。代码如下:

# 传感器id列名: dec
# 指定sum()函数只对数值型(numeric_only)的cols操作
data = data.groupby("dec").resample('5min').sum(numeric_only=True)

Vegitable_dog的踩坑合集

1. 直接将传感器id设置为index

由于事先已将时间列作为datetime index,相当于为dataframe设置了双重index,导致后续进行resample时出错。

其实如果后续没有再对时间序列的处理的话,可以直接将索引设置为传感器id列(注意要先用reset_index(),直接声明index='dec'会变成双重索引),再把datetime列变回常规列。在重采样时传递参数resample(on='datatime_col_name')时指定对应的datetime列即可。

2. 重采样后使用agg分别指定对应操作

在这里花的时间就长了……妄图通过agg()对重采样后的不同列分别指定操作。具体来说就是对时间序列的有效数据使用sum(),对传感器id列使用first()函数、mean()函数……(试过了resample所有可用的操作),甚至尝试了使用匿名函数lambda自定义,都in vain了。真的狠狠吐槽一下为什么只能使用数学函数 > <,代码如下:

data = data.resample('5min').agg({'POSID': mean,'ts1': sum,  # 再补充一下,这里不能用[]传递同样操作的三个列'ts2': sum,'ts3': sum,})

补充一下resample后可以使用的函数,官方文档中全部列出。都是一些mathematic methods: ‘first’、‘last’、‘median’、‘max’、‘min’、‘ohlc’,也可以用numpy里面的对应方法。

3. 将传感器id列分出来作为一个DataFrame重采样

不要笑……此时已经丧心病狂了,结果当然作为一个整体出什么错,分开之后还是出什么错。还是献上我的代码人头吧:

decid = data.iloc[:, :1].resample('5min').first()
data = data.iloc[:, 1:].resample('5min').sum(numeric_only=True)

一句话送给自己:人菜还瘾大。

【Pandas时间序列处理】Resample踩坑实录相关推荐

  1. JAVA发布栅格图层_基于 WebGL实现自定义栅格图层踩坑实录

    以下内容转载自totoro的文章<WebGL-Y轴翻转踩坑实录> 作者:totoro 链接:blog.totoroxiao.com/webgl-flipY- 来源:blog.totorox ...

  2. Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)

    Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...

  3. PAT乙级题库踩坑实录

    PAT乙级题库踩坑实录 [截止2021.7.28乙级题库已经全部AC] 题目名称: 1030 完美数列 (25 分) 测试点3踩坑 每次取m后,不用从m后第一个元素开始判断是否大于mp,直接从m后第m ...

  4. iOS 入门开发踩坑实录

    其实人生也没有什么道理可讲,但是我们不必丧气,还是要期待,人生有奇遇. 前言 苹果开发者:iOS Developer 最近因为工作需要要开始搞iOS了,简单记录下我收集和学习的过程. 学习资料准备 组 ...

  5. qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录

    qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录 linuxdeployqt几乎是唯一解决方案,网上各种自己写脚本根据ldd去拷贝的,最后大概率都是segment default-除非你是纯Q ...

  6. HP Zbook 15重装ubantu18后,安装Nvidia驱动(踩坑实录,不推荐尝试)

    电脑型号:HP Zbook 15  G6 显卡:nvidia Quadro T1000 安装方式: 使用官方的NVIDIA驱动进行手动安装(经过安装方式和结果对比,强烈不推荐手动安装的方式,这就是一篇 ...

  7. MMDetectionV2 + Colab 超详细教程及踩坑实录

    文章目录 前言 一.环境配置 二.准备自己的数据集 Aug.14更新 三:修改config文件 3.1 文件结构 3.2 (本地)修改config文件 3.2.1 (本地)构造自己模型的权重文件 3. ...

  8. RIME(小狼毫)踩坑实录(常见问题)

    目录 RIME(小狼毫)踩坑实录 适合谁使用 配置文件规则 文件目录 命名格式 yaml语法 踩坑 配置微软双拼 增加词典 GUI方式(不推荐) 编写yaml文件方式 符号上屏 总结 RIME(小狼毫 ...

  9. Chromium内核浏览器编译记(一)踩坑实录

    转载请注明出处:https://blog.csdn.net/kong_gu_you_lan/article/details/123862868 本文出自 容华谢后的博客 往期回顾: Chromium内 ...

  10. Unity3D学习之旅5-RPG游戏-更新与踩坑实录

    踩坑实录 设定了位置的物体突然位置变成坐标原点(0,0,0) 由于我使用了Unity自带的导航系统AI-Navication,当我把游戏人物传送到一个新地点时,该地点未被烘焙上,导致游戏人物位置(po ...

最新文章

  1. Struts2--标签tag
  2. java算法 第七届 蓝桥杯B组(题+答案) 3.凑算式
  3. 0寄存器与arm_如何在ARM下进行高效的C编程?
  4. python语言格式化输出_Python | 格式化输出字符串
  5. 【学术相关】供参考:刚刚,2021 世界大学学术排名发布!
  6. Python文件操作,时间日期操作,collections增强,Deque(类似java的LinkedList),OrderedDict,Counter
  7. 如此智能的Windows Embedded Standard 7
  8. mybatis 多租户saas_彻底理解微商城多租户Saas架构设计
  9. lora网关软件设计_SX1301网关设计 LoRaWAN网关 评估开发套件sx1278双向测试云平台LPKT001...
  10. 李佳琦谈公益:时代成就了我 我也要回馈社会
  11. 油价下降,全国人民都高兴
  12. 典型的异步客户端套接字构建
  13. Memcached:高性能分布式对象缓存系统
  14. HashTable与ConcurrentHashMap的区别
  15. 【JAVA】数据结构——二叉树的学习
  16. promise Eslint sql传参方式 async-await
  17. PPT素材不够用,这5个网站帮你解决
  18. day12_XML解析
  19. 如何确定喜神、财神、福神方位
  20. SAP市值暴跌与SAP系统间接访问之殇

热门文章

  1. 坐维珍航空往返英国也有WiFi连了 不过并不免费
  2. 树搜索算法 及 最优解
  3. matlab免费30天,免费试用Signal Processing Toolbox
  4. imseggeodesic
  5. 使用Go toolchain梳理项目module依赖关系
  6. 概率论与数理统计学习笔记——第二讲——事件的相互关系及运算
  7. 2021年盐田区科技创新扶持项目申报条件及奖励,补贴100万
  8. 关于记帐怎么坚持呢?
  9. Java代码如何布署到云服务器_Java代码怎样布署到云服务器
  10. 最强自动化测试框架Playwright(13)- headed模式运行