pandas学习系列(一):时间序列
2016-10-23 10:49
267 查看
最近参加了天池的一个机场航空人流量预测大赛,需要用时间序列来预测,因此开始使用python的pandas库
发现pandas库功能的确很强大,因此在这记录我的pandas学习之路。
发现pandas库功能的确很强大,因此在这记录我的pandas学习之路。
# -*- coding: utf-8 -*- # 统计未来3小时将要起飞的人数 import os import pandas as pd import numpy as np import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler os.chdir('C:/Users\Administrator/Desktop/competition/1017') df = pd.read_csv('airport_gz_departure_chusai_2ndround.csv',usecols = [2,3]) df = df.dropna(axis = 0) # 删除含有空值的行 df = df[df.flight_time>df.checkin_time] # 删除flighttime早于checktime的行 df = df.sort_values(by='flight_time')# 将数据按flight_time排序 df.flight_time = pd.to_datetime(df.flight_time) #转换数据类型为Timestamp df.checkin_time = pd.to_datetime(df.checkin_time) df = df[(df.flight_time-df.checkin_time)<pd.Timedelta(hours=12)] #去除间隔时间相差12个小时的,12这个参数需要自己调试 df = df.flight_time dataset = pd.tseries.index.DatetimeIndex(df.values) # 转换数据类型为DatetimeIndex times = pd.date_range(start = '2016-09-10 19:00:00',end = '2016-9-25 15:00:00',freq ='10min') contact_nums = [] for time in times: start = np.where(dataset>time)[0] time = time + pd.Timedelta(hours = 3) # 统计当前时间后3小时将要起飞的乘客 end = np.where(dataset<=time)[0] if len(end)==0: contact_nums.append(0) else: contact_nums.append(end[-1]-start[0]+1) df = pd.DataFrame(contact_nums,index = times,columns = ['num']) df.to_csv('C:/Users/Administrator/Desktop/competition/DataProcessing/Person_to_fly.csv',index_label = 'time_back') scaler = MinMaxScaler(feature_range = (0,1)) contact_nums = scaler.fit_transform(np.reshape(np.array(contact_nums),(len(contact_nums),1)).astype('float32')) plt.plot(scaler.inverse_transform(contact_nums)) plt.show()
相关文章推荐
- 数据结构和算法学习系列之最大子序列求和问题的O(N)时间复杂度
- 每天学习一算法系列(5)(已知两个数组,数组里的元素有正有负,但是都是按照从小到大已经排好序,要求用尽可能小的时间复杂度编写一算法求出两个数组的最大交集)
- 每天学习一算法系列(27)(输入两个整数序列。其中一个序列表示栈的push 顺序,判断另一个序列有没有可能是对应的pop 顺序)
- wcf系列学习5天速成——第三天 分布性事务的使用 有时间再验证下 不同库的操作
- ElasticSearch学习_陶文1_时间序列数据库的秘密(1)—— 介绍
- 数值优化(Numerical Optimization)学习系列-序列二次规划和内点法(SQP、Interior-Point)
- Rad control系列非常好,这几天有时间就研究了一些,我会相继把我学习的过程写下来,顺便提供 Telerik q3注册机
- Python 数据分析(二 本实验将学习利用 Python 数据聚合与分组运算,时间序列,金融与经济数据应用等相关知识
- ggplot2绘图入门系列之五:时间序列(完)
- ElasticSearch学习_陶文3_时间序列数据库的秘密(3)——加载和分布式计算
- 每天学习一算法系列(29)(有两个序列a,b,大小都为n,序列元素的值任意整数,无序;要求:通过交换a,b 中的元素,使[序列a 元素的和]与[序列b 元素的和]之间的差最小)
- R语言与时间序列学习笔记(1)
- 深入C#学习系列一:序列化(Serialize)、反序列化(Deserialize)
- 【HDU】5256 系列转换(上涨时间最长的序列修饰)
- Python学习系列十二:序列的方法
- 每天学习一算法系列(25)(一个台阶总共有n 级,如果一次可以跳1 级,也可以跳2 级,求总共有多少总跳法,并分析算法的时间复杂度。)
- STL学习系列之四——deque序列容器
- Oracle11g R2学习系列 之六数据库链接,快照及序列
- R语言学习之<xts时间序列>
- 深度学习进行时间序列模式识别