【Pandas时间序列处理】Resample踩坑实录
【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踩坑实录相关推荐
- JAVA发布栅格图层_基于 WebGL实现自定义栅格图层踩坑实录
以下内容转载自totoro的文章<WebGL-Y轴翻转踩坑实录> 作者:totoro 链接:blog.totoroxiao.com/webgl-flipY- 来源:blog.totorox ...
- Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇)
Win 10 + Ubuntu 18.04 双系统安装与深度学习环境配置安装踩坑实录(上篇) 折腾了两三天总算顺利在电脑上完成了装x的双系统安装,一路走来还比较顺利,主要在ubuntu的显卡设置上躺了 ...
- PAT乙级题库踩坑实录
PAT乙级题库踩坑实录 [截止2021.7.28乙级题库已经全部AC] 题目名称: 1030 完美数列 (25 分) 测试点3踩坑 每次取m后,不用从m后第一个元素开始判断是否大于mp,直接从m后第m ...
- iOS 入门开发踩坑实录
其实人生也没有什么道理可讲,但是我们不必丧气,还是要期待,人生有奇遇. 前言 苹果开发者:iOS Developer 最近因为工作需要要开始搞iOS了,简单记录下我收集和学习的过程. 学习资料准备 组 ...
- qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录
qt5.15.2-银河麒麟-龙芯国产化-项目打包踩坑实录 linuxdeployqt几乎是唯一解决方案,网上各种自己写脚本根据ldd去拷贝的,最后大概率都是segment default-除非你是纯Q ...
- HP Zbook 15重装ubantu18后,安装Nvidia驱动(踩坑实录,不推荐尝试)
电脑型号:HP Zbook 15 G6 显卡:nvidia Quadro T1000 安装方式: 使用官方的NVIDIA驱动进行手动安装(经过安装方式和结果对比,强烈不推荐手动安装的方式,这就是一篇 ...
- MMDetectionV2 + Colab 超详细教程及踩坑实录
文章目录 前言 一.环境配置 二.准备自己的数据集 Aug.14更新 三:修改config文件 3.1 文件结构 3.2 (本地)修改config文件 3.2.1 (本地)构造自己模型的权重文件 3. ...
- RIME(小狼毫)踩坑实录(常见问题)
目录 RIME(小狼毫)踩坑实录 适合谁使用 配置文件规则 文件目录 命名格式 yaml语法 踩坑 配置微软双拼 增加词典 GUI方式(不推荐) 编写yaml文件方式 符号上屏 总结 RIME(小狼毫 ...
- Chromium内核浏览器编译记(一)踩坑实录
转载请注明出处:https://blog.csdn.net/kong_gu_you_lan/article/details/123862868 本文出自 容华谢后的博客 往期回顾: Chromium内 ...
- Unity3D学习之旅5-RPG游戏-更新与踩坑实录
踩坑实录 设定了位置的物体突然位置变成坐标原点(0,0,0) 由于我使用了Unity自带的导航系统AI-Navication,当我把游戏人物传送到一个新地点时,该地点未被烘焙上,导致游戏人物位置(po ...
最新文章
- Struts2--标签tag
- java算法 第七届 蓝桥杯B组(题+答案) 3.凑算式
- 0寄存器与arm_如何在ARM下进行高效的C编程?
- python语言格式化输出_Python | 格式化输出字符串
- 【学术相关】供参考:刚刚,2021 世界大学学术排名发布!
- Python文件操作,时间日期操作,collections增强,Deque(类似java的LinkedList),OrderedDict,Counter
- 如此智能的Windows Embedded Standard 7
- mybatis 多租户saas_彻底理解微商城多租户Saas架构设计
- lora网关软件设计_SX1301网关设计 LoRaWAN网关 评估开发套件sx1278双向测试云平台LPKT001...
- 李佳琦谈公益:时代成就了我 我也要回馈社会
- 油价下降,全国人民都高兴
- 典型的异步客户端套接字构建
- Memcached:高性能分布式对象缓存系统
- HashTable与ConcurrentHashMap的区别
- 【JAVA】数据结构——二叉树的学习
- promise Eslint sql传参方式 async-await
- PPT素材不够用,这5个网站帮你解决
- day12_XML解析
- 如何确定喜神、财神、福神方位
- SAP市值暴跌与SAP系统间接访问之殇