python时间序列数据的对齐和数据库的分批查询
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可!
0. 前言
在机器学习里,我们对时间序列数据做预处理的时候,经常会碰到一个问题:有多个时间序列存在多个表里,每个表的的时间轴不完全相同,要如何把这些表在时间轴上进行对齐,从而合并成一个表呢?尤其是当这些表都存在数据库里,而且超级超级大的时候,怎样才能更高效地处理呢?
在上一篇文章中,已经介绍过了如何在Python中创建数据库连接以及对数据库进行增删改查、分组聚合以及批量读取和处理等操作。
今天就以上面的问题为导向,手把手教你如何用Python一步步实现相应的功能。讲解的内容主要有:
如何实现两个有序序列的合并;
延伸到两个时间序列数据的对齐;
从数据库中自动循环分批读取数据。
需要掌握的主要编程技巧包括:
用函数实现特定功能
用类对功能进行封装
实现基本的迭代器
使用的工具及版本:Python3.7,MySQL8.0, Jupyter Notebook
1. 有序序列的合并
本节主要介绍如何实现将2个有序(默认从小到大排序)序列合并成一个序列,同时介绍Python中基本的循环结构。
其实在Python中固然有相应的方法可以很容易地做到(例如集合的set.union()方法),这里之所以要自己实现,主要是要理解这种思想,为后文的功能实现做铺垫。
1.1 Python知识点之条件测试
if 语句的语法结构为:
if boolean_expression1: #如果满足条件1,则执行suite1代码块
suite1
elif boolean_expression2: #如果满足条件2,则执行suite2代码块
suite2
else: #否则执行else_suite代码块
else_suite
其中elif
和else
为可选。
1.2 Python知识点之循环控制
1.2.1 while循环
(1) 循环机制及应用场景
用于编写通用迭代结构
顶端测试为真时执行循环体,并会重复多次测试直到为假后结束循环
(2) 语法格式
while boolean_expression: #如果测试为真,则执行while_suite代码块(循环执行)
while_suite
else: #直到测试为假,则执行一遍else_suite代码块之后结束循环
else_suit
其中else
为可选。
1.2.2 for 循环
(1)循环机制及应用场景
通用的序列迭代器,用于遍历任何有序的序列对象内的元素
可用于字符串、元组、列表和其它的内置可迭代对象,以及通过类所创建的新对象
(2)语法格式
for expression in iterable:
for_suite
else:
else_suite
其中else
为可选。
python时间序列数据的对齐和数据库的分批查询的更多相关文章
- Python大数据系列-01-关系数据库基本运算
关系数据库基本运算 .tg {border-collapse:collapse;border-spacing:0;} .tg td{font-family:Arial, sans-serif;font ...
- Oracle数据库日期范围查询的两种实现方式
参考文档:http://database.51cto.com/art/201108/288058.htm Oracle数据库日期范围查询有两种方式:to_char方式和to_date方式,接下来我们通 ...
- Python获取股票历史、实时数据与更新到数据库
要做量化投资,数据是基础,正所谓"巧妇难为无米之炊" 在免费数据方面,各大网站的财经板块其实已提供相应的api,如新浪.雅虎.搜狐...可以通过urlopen相应格式的网址获取数据 ...
- MySQL实验准备(二)--Python模拟数据(MySQL数据库)
Python模拟数据(MySQL数据库) 数据模拟 目的:模拟多个表的插入和查询数据的模拟,再通过基准测试脚本测试服务器性能和收集数据,仿真模拟. 备注: 如果需要基础的python环境,可以查看&l ...
- 孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成
孤荷凌寒自学python第四十八天通用同一数据库中复制数据表函数最终完成 (完整学习过程屏幕记录视频地址在文末) 今天继续建构自感觉用起来顺手些的自定义模块和类的代码. 今天经过反复折腾,最终基本上算 ...
- Python爬虫抓取东方财富网股票数据并实现MySQL数据库存储
Python爬虫可以说是好玩又好用了.现想利用Python爬取网页股票数据保存到本地csv数据文件中,同时想把股票数据保存到MySQL数据库中.需求有了,剩下的就是实现了. 在开始之前,保证已经安装好 ...
- python 读取SQLServer数据插入到MongoDB数据库中
# -*- coding: utf-8 -*-import pyodbcimport osimport csvimport pymongofrom pymongo import ASCENDING, ...
- python和数据科学(Anaconda)
Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在这篇文章中,我会一步一步指导你怎么进入这个PyData丛林. 你可 ...
- Python和数据科学的起步指南
http://python.jobbole.com/80853/ Python拥有着极其丰富且稳定的数据科学工具环境.遗憾的是,对不了解的人来说这个环境犹如丛林一般(cue snake joke).在 ...
随机推荐
- 牛客挑战赛33 B-鸽天的放鸽序列
也许更好的阅读体验 \(\mathcal{Description}\) 定义一个长为\(n\)的\(01\)序列\(A_1, A_2, \dots, A_n\)的权值为\(\sum_{i=1}^n ...
- Winform 使用热键功能实现Ctrl+C和Ctrl+V复制粘贴功能
当我们使用winform控件的时候,会发现这些控件(比如Label)不支持Ctrl+c 复制和Ctrl+v 快捷键复制粘贴功能,如果我们需要实现这个功能改怎么做呢? 1. 首先我们创建一个winfor ...
- undefined reference to cv::imread(cv::String const&, int)
.build_release/lib/libcaffe-nv.so: undefined reference to cv::imread(cv::String const&, int)' .b ...
- Python接口自动化基础---cookie绕过登录
使用fiddler获取登录cookie 对比登录前和登录后的cookis 登录前 登录后: 获得cookie之后,使用cookie访问,就可以获取登录态: import requests url='h ...
- JavaScript 数组 遍历方法 map( ) 和 forEach( )
let arr = [1, 3, 7, 6, 9]; 不用知道元素的个数,即不用设置开始下标和结束下标. 1:forEach( )会把数组中的每个值进行操作,没有返回值,undefined let j ...
- Android目前流行三方数据库ORM分析及对比
Android 平台上的数据库框架非常多,但是有一个共同特点就是基于对象关系映射(ORM)模型的.实现的目标也都是不需要写SQL语句,通过对对象的操作保存和操作数据.要是从语法的简洁性来说都有自己的特 ...
- ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了
之前Jerry已经写了一系列SAP Cloud Platform ABAP编程环境的文章,当时使用的环境,是SAP专门为SAP社区导师们创建的. 当时也有朋友留言,询问大家何时才能使用到免费的SAP云 ...
- SQL月度统计
select Convert ( VARCHAR(7),CreateTime,120) as Date ,sum(Money) as M FROM [LBAmmeterDB].[dbo].Am_Tas ...
- 22,Django常用命令
学习Django你需要了解常见命令的使用,比如创建项目,创建应用,创建超级用户,数据表创建及更新,启动服务器等.这些命令都包含在django-admin.py和manage.py里.除此以外manag ...
- 1.后期特效合成AE概述&&工作流程&&磁盘缓存清理
1.简介: After Effects:是一款专业的后期制作与特效合成软件: 2.AE界面介绍 2.1 项目面板 2.2 合成预览面板 2.3 时间线面板 2.4 辅助面板 2 ...