將timestamp
轉換為period
通過使用to_period
方法,可以將由時間戳索引的
series
和dataframe
物件轉換為以時期索引
rng=pd.date_range('1/1/2000',periods=3,freq='m')
ts=series(randn(3),index=rng)
print(ts)
pts2=ts.to_period(freq='m')
print(pts2)
結果如下:ts
是每個月最後一天的日期,
pts2
則是體現的是以月為週期的日子
2000-01-31 0.990097
2000-02-29 0.439761
2000-03-31 -3.395317
freq: m, dtype: float64
2000-01 0.990097
2000-02 0.439761
2000-03 -3.395317
freq: m, dtype: float64
如果要轉換回時間戳,則可以使用pts2.to_timestamp(how='end')
的方法2000-01-31 -0.489228
2000-02-29 -1.583283
2000-03-31 -2.414735
freq: m, dtype: float64
重取樣及頻率轉換
將高頻率資料轉換為低頻率稱為降取樣,而將低頻率資料轉換為高頻率稱為公升取樣。pandas
中的resample
方法就可以進行這種頻率轉換
rng=pd.date_range('1/1/2000',periods=50,freq='d')
ts=series(randn(50),index=rng)
print(ts.resample('m').mean())
執行結果如下,在這裡ts
是以天級的資料,但是通過
resample(『m』)
轉換為月度的資料,且對屬於同乙個月的資料進行求平均的計算。得到的就是每個月的平均值
2000-01-31 -0.276265
2000-02-29 -0.052926
freq: m, dtype: float64
降取樣:
在降取樣的時候,需要考慮兩樣東西:
1 各區間哪邊是閉合的
2 如何標記各個聚合面元,用區間的開頭還是末尾
來看如下**:
rng=pd.date_range('1/1/2000',periods=12,freq='t')
ts=series(np.arange(12),index=rng)
print(ts)
2000-01-01 00:00:00 0
2000-01-01 00:01:00 1
2000-01-01 00:02:00 2
2000-01-01 00:03:00 3
2000-01-01 00:04:00 4
2000-01-01 00:05:00 5
2000-01-01 00:06:00 6
2000-01-01 00:07:00 7
2000-01-01 00:08:00 8
2000-01-01 00:09:00 9
2000-01-01 00:10:00 10
2000-01-01 00:11:00 11
print(ts.resample('5min', closed='left').sum())
左閉合的時候統計是以00:00:00
為開始的
5分鐘週期
2000-01-01 00:00:00 10
2000-01-01 00:05:00 35
2000-01-01 00:10:00 21
print(ts.resample('5min',closed='right').sum())
右閉合的時候統計是以00:00:00
為結束的5
分鐘週期,因為時間提前到了1999-12-31 23:55:00
這個時候。
1999-12-31 23:55:00 0
2000-01-01 00:00:00 15
2000-01-01 00:05:00 40
2000-01-01 00:10:00 11
因此左閉合還是右閉合取決與時間的開始和結束
在金融領域中有一種無所不在的時間序列聚合方式,即計算各面元的4
個值,第乙個值
open:
開盤,最後乙個值
close:
**,最大值
high:
最高,最小值
low:
最低ts.resample('5min', closed='left').ohlc()
open high low close
2000-01-01 00:00:00 0 4 0 4
2000-01-01 00:05:00 5 9 5 9
2000-01-01 00:10:00 10 11 10 11
Python資料分析 時間序列 重取樣
目錄將時間序列從乙個頻率轉換為另乙個頻率的過程,且會有資料的結合。降取樣 高頻資料 低頻資料,例如 以月為頻率的資料轉為以年為頻率的資料 公升取樣 低頻資料 高頻資料,例如 以年為頻率的資料轉為以月為頻率的資料 重取樣 resample 建立乙個以天為頻率的timeseries,重取樣為按2天為頻率...
pandas之時間序列
pandas中提供了許多用來處理時間格式文字的方法,包括按不同方法生成乙個時間序列,修改時間的格式,重取樣等等。in 7 import pandas as pd 按起始和終止日期以及步長生成時間序列 in 8 pd.date range start 20171212 end 20180101 fre...
Python資料分析 時間模組datetime
目錄2.日期解析方法dateutil.parser.parse 時間模組主要有 datetime.date datetime.datetime datetime.timedelta date主要用於獲取日期,例如獲取當前日期或者特定日期,獲取的日期可以由str方法直接轉化為字串格式 from dat...