数据介绍: 这里使用了航空乘客数据集,数据里包含了月份以及每月的乘客数量。
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline
from matplotlib.pylab import rcParams
rcParams['figure.figsize']=15,6
#数据导入和查看
data=pd.read_csv('Airpassengers.csv')
print(data.head())
print('\nData Types:')
print(data.dtypes)
train.timestamp=pd.to_datetime(train.Month,format='%Y-%m')
train.index=train.timestamp
train.drop('Month',axis=1,inplace=True )
train.head()
#格式转换
dateparse=lambda dates: pd.datetime.strptime(dates,'%Y-%m')
data=pd.read_csv('Airpassengers.csv',parse_dates=['Month'],index_col='Month',date_parser=dateparse)
data.head()
# parse_dates:指定包含日期时间信息的列。例子里的列名是'Month‘
# index_col:在TS数据中使用pandas的关键是索引必须是日期等时间变量。所以这个参数告诉pandas使用'Month'列作为索引
# date_parser:它指定了一个将输入字符串转换为datetime可变的函数。pandas 默认读取格式为'YYYY-MM-DD HH:MM:SS'的数据。如果这里的时间格式不一样,就要重新定义时间格式,dataparse函数可以用于此目的。
#查看数据的索引
data.index
注意:dtype='datetime64[ns] 就可以确定是时间对象。这样将数据格式转换成Series object 就可以避免每次使用时都要提到列名。
#1.Specific the index as string constant:
ts['1949-01-01']
# 2. 导入并使用‘datatime’
from datetime import datetime
ts[datetime(1949,1,1)]
#和使用索引方法一样
# 1. 制定时间区间
ts['1949-01-01':'1949-05-01']
# 2. 使用冒号‘:’ :
ts[:'1949-05-01']
# 3. 取一年的数据
ts['1949']
# 4.取一个月的数据
ts['1949-May'] #可以用MAY
注意:
ts = ts.sort_values(by = 'Month') #根据时间先后将数据重新排序,并替换原始ts