python pandas 对带时间序列的数据进行重采样处理
今天老板要处理一批带有时间序列的数据,源数据为1秒钟一行的csv数据,处理之后变成15分钟一行的数据。
源数据示例如下:
time B00 B01 ... RollMean2.5 RollMean10
2018-05-31 09:44:39 15.212 5.071 ... 2.97 2.99
2018-05-31 09:44:40 17.202 4.047 ... 2.90 3.08
2018-05-31 09:44:41 10.137 4.055 ... 2.58 2.71
2018-05-31 09:44:42 11.961 1.994 ... 2.39 2.49
2018-05-31 09:44:43 17.157 2.019 ... 2.44 2.53
2018-05-31 09:44:44 12.972 3.991 ... 2.44 3.29
2018-05-31 09:44:45 20.078 6.023 ... 2.49 3.21
具体操作步骤如下:
(1)读取csv数据:
f = pd.read_csv(os.path.join(path1, file))
(2)将time列转换为 DatetimeIndex类型作为index值,删除time列:
f.index = pd.to_datetime(f.time.values)
del f.time
(3)使用resample函数重采样数据:
# ‘15T’表示间隔15分钟,其他间隔方式可自行查看文档说明
# sum()函数表示求和,还可以用mean()函数进行平均,其他计算方式暂时不明
# resample函数中可以通过 on=‘列名’ 关键字参数设置针对其他列名的重采样操作
resample = f.resample('15T').sum()
(4)将reample写入excel:
resample.to_excel(path1+'/'+csvf[0]+'.xlsx')
整个代码示例:
import os
import sys
import copy
import numpy as np
import pandas as pd
import openpyxl # 获取当前脚本及数据文件夹路径
path = os.path.split(sys.argv[0])[0]
# 获取当前路径下文件夹名称
dirs = [x for x in os.listdir(path) if not os.path.splitext(x)[1]]
# 遍历当前路径文件夹内文件,读取合并数据
for dir_ in dirs:
path1 = os.path.join(path, dir_)
files = copy.copy(os.listdir(path1))
for file in files:
csvf = os.path.splitext(file)
if csvf[1] == '.csv':
f = pd.read_csv(os.path.join(path1, file))
f.index = pd.to_datetime(f.time.values)
del f['time']
resample = f.resample('15T').sum()
print(csvf[0])
resample.to_excel(path1+'/'+csvf[0]+'.xlsx')
问题:excel或者csv的时间表示方式有时是以小数形式进行的,这次尚未学习如何将这种时间表示形式直接转换为DatetimeIndex类型,如果有同学知道,欢迎赐教,谢谢!
python pandas 对带时间序列的数据进行重采样处理的更多相关文章
- python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix
先手工生出一个数据框吧 import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3) ...
- Python利用openpyxl带格式统计数据(2)- 处理mysql数据
上一篇些了openpyxl处理excel数据,再写一篇处理mysql数据的,还是老规矩,贴图,要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 ''' 2 #利用openpyxl向e ...
- Python利用openpyxl带格式统计数据(1)- 处理excel数据
统计数据的随笔写了两篇了,再来一篇,这是第三篇,前面第一篇是用xlwt写excel数据,第二篇是用xlwt写mysql数据.先贴要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 '' ...
- python pandas.Series&&DataFrame&& set_index&reset_index
参考CookBook :http://pandas.pydata.org/pandas-docs/stable/cookbook.html Pandas set_index&reset_ind ...
- python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言)
python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言) 感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为 ...
- Python pandas检查数据中是否有NaN的几种方法
Python pandas: check if any value is NaN in DataFrame # 查看每一列是否有NaN: df.isnull().any(axis=0) # 查看每一行 ...
- 基于tornado python pandas和bootstrap上传组件的mongodb数据添加工具
总体思路:基于bootstrap4的前端页面上传组件,把excel文件上传至服务器,并利用python pandas读取里面的数据形成字典列表 通过pymongo 接口把数据插入或追加到mongodb ...
- Python——Pandas 时间序列数据处理
介绍 Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取.转换.过滤.分析等一系列操作.同样,Pandas 已经被证明为是非常强大的用于处理时间序列数据的工具.本节将介绍 ...
- oracle数据据 Python+Pandas 获取Oracle数据库并加入DataFrame
import pandas as pd import sys import imp imp.reload(sys) from sqlalchemy import create_engine impor ...
随机推荐
- python进阶—OpenCV之常用图像操作函数说明(转)
文章目录cv2.thresholdcv2.bitwise_andcv2.bitwise_orcv2.bitwise_notcv2.inRangecv2.resizecv2.adaptiveThresh ...
- centos7-虚拟机 主机 互通 静态ip网络设置
由于目前互联网发展的速度之快.用户量之多,很多时候作为服务端单台服务器的硬件配置已经不足以支撑业务.集群.分布式等技术架构变得越来越普及,作为开发人员也有必要掌握相关技能.笔者打算选用virtual ...
- Linux基础学习准备
Linux 基础学习准备 工欲善其事必先利其器,还是买个服务器折腾比较好. 虚拟机和镜像 推荐吾爱的:吾爱虚拟机2.0 CentOS镜像: Centos国内下载源 http://man.linuxde ...
- 【LeetCode】最长连续序列
[问题]给定一个未排序的整数数组,找出最长连续序列的长度. 要求算法的时间复杂度为 O(n). 示例: 输入: [, , , , , ] 输出: 解释: 最长连续序列是 [, , , ].它的长度为 ...
- C++编程学习(二) 数据
博主已经有一些基础了,所以写的东西可能是容易错的,或者以前没记住的,或者是对理解知识点有帮助的.因此如果有纯小白看到了这篇博文,不懂的地方请自行百度啦~ 另外,本系列所有内容的图片均来自于西北工业大学 ...
- k8s CI/CD--Jenkinsfile例子
试用k8s内部jenkins,并且配置好podtemplate pipeline{ agent any stages{ stage('get the code'){ steps{ ...
- Swift4 - GCD的使用
Swift4 - GCD的使用 2018年03月30日 17:33:27 Longshihua 阅读数:1165 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csd ...
- Cannot access android.support.v4.app.*
解决办法: 添加到受影响的 module build.gradle 中(比如app的gradle文件根代码下) configurations.all { resolutionStrategy.each ...
- python中的with用法
with是从Python2.5引入的一个新的语法,它是一种上下文管理协议,目的在于从流程图中把 try,except 和finally 关键字和 资源分配释放相关代码统统去掉,简化try….excep ...
- xv6的启动过程
bootloader 1. bootasm.S : start32 2. bootmain.c : bootmain kernel 3. main.c : main 4. proc.c : useri ...