【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
上一篇下一篇

猜你喜欢

热点阅读