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类型,如果有同学知道,欢迎赐教,谢谢!

  

原文地址:https://www.cnblogs.com/keeptg/p/10601013.html

时间: 2024-07-29 13:27:12

python pandas 对带时间序列的数据进行重采样处理的相关文章

python pandas.DataFrame选取、修改数据最好用.loc,.iloc,.ix

先手工生出一个数据框吧 [python] view plain copy import numpy as np import pandas as pd df = pd.DataFrame(np.arange(0,60,2).reshape(10,3),columns=list('abc')) df 是这样子滴 那么这三种选取数据的方式该怎么选择呢? 一.当每列已有column name时,用 df [ 'a' ] 就能选取出一整列数据.如果你知道column names 和index,且两者都很

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

介绍 Pandas 是非常著名的开源数据处理库,我们可以通过它完成对数据集进行快速读取.转换.过滤.分析等一系列操作.同样,Pandas 已经被证明为是非常强大的用于处理时间序列数据的工具.本节将介绍所有 Pandas 在时间序列数据上的处理方法. 知识点 创建时间对象 时间索引对象 时间算术方法 创建时间对象 在 Pandas 中关于时间序列的常见对象有 6 种,分别是 Timestamp(时间戳).DatetimeIndex(时间戳索引).Period(时间段).PeriodIndex(时间

Python pandas 0.19.1 Indexing and Selecting Data文档翻译

最近在写个性化推荐的论文,经常用到Python来处理数据,被pandas和numpy中的数据选取和索引问题绕的比较迷糊,索性把这篇官方文档翻译出来,方便自查和学习,翻译过程中难免很多不到位的地方,但大致能看懂,错误之处欢迎指正~ Python pandas 0.19.1 Indexing and Selecting Data 原文链接 http://pandas.pydata.org/pandas-docs/stable/indexing.html 数据索引和选取 pandas对象中的轴标签信息

Python 学习 第十三篇:数据的读写-文件、DataFrame、json和pymssql

Python的文件是一个重要的对象,使用open()函数来打开文件,创建文件对象,进行文件的读写操作.当数据用于交换信息时,通常需要把数据保存为有格式的文本数据,可以保存为有特定的行分隔符和列分隔符的数据,这可以使用pandas模块中的函数来读写:也可以保存为json结构的数据,这可以使用json模块中的函数来实现:对于大型的数据交互,通常使用数据库. 一,Python的open函数 open()函数用于打开文件,创建文件对象: open(name, mode, encoding=None) 参

python pandas 中文件的读写——read_csv()读取文件

read_csv()读取文件1.python读取文件的几种方式read_csv 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为逗号read_table 从文件,url,文件型对象中加载带分隔符的数据.默认分隔符为制表符(“\t”)read_fwf 读取定宽列格式数据(也就是没有分隔符)read_cliboard 读取剪切板中的数据,可以看做read_table的剪切板.在将网页转换为表格时很有用2.读取文件的简单实现程序代码: df=pd.read_csv('D:/project/

如何使用 Python 对 Excel 做一份数据透视表

如何使用 Python 对 Excel 做一份数据透视表客户这边,其中有一张如同上图所示的数据汇总表,然而需求是,需要将这张表数据做一个数据透视表,最后通过数据透视表中的数据,填写至系统数据库.拿到需求,首先就想到肯定不能直接用设计器去操作 Excel,通过操作 Excel 去做数据透视表,那样,就得通过代码去完成了. 代码分享如下: import pandas as pdimport numpy as np def prvot():f = pd.read_excel(io='C:/file/t

Power BI Python 在Power BI Desktop中Python代码如何使用Power Query数据

通过Power BI Python 在Power BI Desktop中使用Python导入数据这篇文章,我们知道了Power BI如何获取Python脚本中的导入数据.那么反过来如何在Python中使用Power Query中的数据了? 首先我们进入Power Query管理器界面,通过新建一个空查询,并建立一个1到100的列表,再将其转换为表 随后我们依次点击"转换/运行Python脚本" 在脚本对话框中,输入如下所示的代码: dataset.insert(1,"add_

Python pandas 'HDFStore requires PyTables' Issue

Python pandas 'HDFStore requires PyTables' Issue 在运行mobike.py过程中,一直报错,原因是pip install tables命令中安装的pytables文件其实是存在问题的,后续有人修正了这个问题并发布了新的tables库 因此在安装的时候 pip install tables==3.3.0 Python pandas 'HDFStore requires PyTables' Issue

C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子)

转自原文C#+HtmlAgilityPack+XPath带你采集数据(以采集天气数据为例子) 阅读目录 1.HtmlAgilityPack简介 2.XPath技术介绍与使用 3.采集天气网站案例 4.资源 第一次接触HtmlAgilityPack是在5年前,一些意外,让我从技术部门临时调到销售部门,负责建立一些流程和寻找潜在客户,最后在阿里巴巴找到了很多客户信息,非常全面,刚开始是手动复制到Excel,是真尼玛的累,虽然那个时候C#还很菜,也想能不能通过程序来批量获取(所以平时想法要多才好).几