python資料分析之 時間序列二

2022-05-30 21:30:26 字數 2718 閱讀 8426

將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...