【2019-03-31】Basic Time Series Ma
2019-03-31 本文已影响0人
BigBigFlower
基础pandas 时序操作
基本操作:
(1)建立日期范围
import pandas as pd
from datetime import datetime
import numpy as np
date_rng=pd.date_range(start='1/1/2018',end='1/08/2018',freq='H')
image.png
检测元素类型
type(date_rng[0])
image.png
查看前15个元素。
df = pd.DataFrame(date_rng, columns=['date'])
df['data'] = np.random.randint(0,100,size=(len(date_rng)))
df.head(15)
image.png
(2)使用时间戳
转换 data frame index 到 a datetime index
df['datetime'] = pd.to_datetime(df['date'])
df = df.set_index('datetime')
df.drop(['date'], axis=1, inplace=True)
df.head()
image.png
string_date_rng = [str(x) for x in date_rng]
image.png
(3)字符串转换为时间戳
转换字符串为时间戳:
timestamp_date_rng = pd.to_datetime(string_date_rng,infer_datetime_format=True)
image.png
string_date_rng_2 = ['June-01-2018', 'June-02-2018','June-03-2018']
image.png
timestamp_date_rng_2 = [datetime.strptime(x,'%B-%d-%Y') for x in string_date_rng_2]
image.png
(4)索引切片时间序列
df2 = pd.DataFrame(timestamp_date_rng_2, columns=['date'])
image.png
df[df.index.day == 2]
image.png
查看两个确定的时间之间的时间:
df['2018-01-04':'2018-01-06']
image.png
(5)重新计算时间序列以获取不同时间段的聚合/汇总统计信息
以不同的频率重采样数据,指定如何计算新采样频率的汇总统计。
df.resample('D').mean()
image.png
(6)计算滚动统计量,3个窗口
df['rolling_sum'] = df.rolling(3).sum()
df.head(10)
image.png
(7)处理缺失的数据
df['rolling_sum_backfilled'] =df['rolling_sum'].fillna(method='backfill')df.head(10)
df.head(10)
image.png
(8)unix /epoch
epoch_t = 1529272655
real_t = pd.to_datetime(epoch_t, unit='s')
real_t
image.png
real_t.tz_localize('UTC').tz_convert('US/Pacific')
image.png