今天老板要处理一批带有时间序列的数据,源数据为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 对带时间序列的数据进行重采样处理的更多相关文章

  1. 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) ...

  2. Python利用openpyxl带格式统计数据(2)- 处理mysql数据

    上一篇些了openpyxl处理excel数据,再写一篇处理mysql数据的,还是老规矩,贴图,要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 ''' 2 #利用openpyxl向e ...

  3. Python利用openpyxl带格式统计数据(1)- 处理excel数据

    统计数据的随笔写了两篇了,再来一篇,这是第三篇,前面第一篇是用xlwt写excel数据,第二篇是用xlwt写mysql数据.先贴要处理的数据截图: 再贴最终要求的统计格式截图: 第三贴代码: 1 '' ...

  4. python pandas.Series&&DataFrame&& set_index&reset_index

    参考CookBook :http://pandas.pydata.org/pandas-docs/stable/cookbook.html Pandas set_index&reset_ind ...

  5. python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言)

    python requests抓取NBA球员数据,pandas进行数据分析,echarts进行可视化 (前言) 感觉要总结总结了,希望这次能写个系列文章分享分享心得,和大神们交流交流,提升提升. 因为 ...

  6. Python pandas检查数据中是否有NaN的几种方法

    Python pandas: check if any value is NaN in DataFrame # 查看每一列是否有NaN: df.isnull().any(axis=0) # 查看每一行 ...

  7. 基于tornado python pandas和bootstrap上传组件的mongodb数据添加工具

    总体思路:基于bootstrap4的前端页面上传组件,把excel文件上传至服务器,并利用python pandas读取里面的数据形成字典列表 通过pymongo 接口把数据插入或追加到mongodb ...

  8. Python——Pandas 时间序列数据处理

    介绍 Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取.转换.过滤.分析等一系列操作.同样,Pandas 已经被证明为是非常强大的用于处理时间序列数据的工具.本节将介绍 ...

  9. oracle数据据 Python+Pandas 获取Oracle数据库并加入DataFrame

    import pandas as pd import sys import imp imp.reload(sys) from sqlalchemy import create_engine impor ...

随机推荐

  1. Day 21:网络编程(2)

    以课程中feiQ为例,feiQ作为一个典型的网络编程应用,用一段代码尝试给自己的发送消息 import java.io.IOException; import java.net.DatagramPac ...

  2. 51NOD1050 循环数组最大字段和

    N个整数组成的循环序列a11,a22,a33,…,ann,求该序列如aii+ai+1i+1+…+ajj的连续的子段和的最大值(循环序列是指n个数围成一个圈,因此需要考虑an−1n−1,ann,a11, ...

  3. jar类库加载顺序

    当我们启动一个tomcat的服务的时候,jar包和claess文件加载顺序: 1. $java_home/lib 目录下的java核心api 2. $java_home/lib/ext 目录下的jav ...

  4. FTP故障排除

    1,ping 检查 IP是否通 禁PING可以使用TCPING 2,服务器端被动模式设置,可设置固定端口号,保证防火墙上该端口畅通 浏览器默认是主动模式 3,使用FLASHFXP软件可以监测到数据端口 ...

  5. 基础语法-选择结构switch

    基础语法-选择结构switch 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.Switch语句特点 switch语句选择的类型在jdk1.6只支持四种:byte,short,i ...

  6. 【Android】家庭记账本手机版开发报告六

    一.说在前面  昨天 1.创建登入和注册界面:2.向数据库添加一张用户表  今天 用图标显示账单情况 问题 1.使用第三方库 hellochart,时添加依赖构建失败 2.在 chertFragmen ...

  7. Egret Engine 2D - 显示对象

        alpha:透明度 width:宽度 height:高度 rotation:旋转角度 scaleX:横向缩放 scaleY:纵向缩放 skewX:横向斜切 skewY:纵向斜切 visible ...

  8. C++基础--引用的一点补充

    这一篇是对引用的一点补充,内容基本上是来自<C++ primer plus>一书第八章的内容. 前面一篇介绍了引用的一点特点,这里补充一个,将引用用于类对象的时候,有一个体现继承的特征,就 ...

  9. C# 添加Log文件、记录Log

    其实在平时的开发过程中都是不怎么写log的,觉得在debug中能看得一清二楚.同事小姐姐前辈,一直就我不写log进行批判,但是我从来不改,哈哈.也算是遇到报应了,在最近一个工程里,本地调试一切正常,到 ...

  10. C#后台执行JavaScript

    方法一: Page.RegisterClientScriptBlock 方法 命名空間: System.Web.UI 这个方法现在已经过时.改用ClientScriptManager.Register ...