【Python數據分析】時間序列切片與索引


1.時間序列的索引與切片

1.1 索引

# Author:Logan
from datetime import datetime
import pandas as pd
import numpy as np

rng = pd.date_range('2017/1','2017/3')
ts = pd.Series(np.random.rand(len(rng)), index = rng)
print(ts.head())

print(ts[0])
print(ts[:2])
print('-' * 50)
# 基本下標位置索引

print(ts['2017/1/2'])
print(ts['20170103'])
print(ts['1/10/2017'])
print(ts[datetime(2017,1,20)])
print('-' * 50)
# 時間序列標簽索引,支持各種時間字符串,以及datetime.datetime

# 時間序列由於按照時間先后排序,故不用考慮順序問題
# 索引方法同樣適用於Dataframe

1.2 切片

# 切片
import pandas as pd
import numpy as np

rng = pd.date_range('2017/1','2017/3',freq = '12H')
ts = pd.Series(np.random.rand(len(rng)), index = rng)

print(ts['2017/1/5':'2017/1/10'])
print('-----')
# 和Series按照index索引原理一樣,也是末端包含

print(ts['2017/2'].head())
# 傳入月,直接得到一個切片

2.重復索引的時間序列

# Author:Logan
# 重復索引的時間序列
import pandas as pd
import numpy as np

dates = pd.DatetimeIndex(['1/1/2015','1/2/2015','1/3/2015','1/4/2015','1/1/2015','1/2/2015'])
ts = pd.Series(np.random.rand(6), index = dates)
print(ts)
print('-' * 50)
print(ts.is_unique)
print('*' * 50)
print(ts.index.is_unique)
print('-' * 50)
# index有重復,is_unique檢查 → values唯一,index不唯一

print(ts['20150101'],type(ts['20150101']))
print(ts['20150104'],type(ts['20150104']))
print('*' * 50)
# index有重復的將返回多個值

print(ts.groupby(level = 0).mean())
# 通過groupby做分組,重復的值這里用平均值處理


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM