Pandas資料分析學習打卡(四) 時序資料

2021-10-07 15:02:28 字數 2254 閱讀 2212

主要內容:時序資料,我的理解就是直接以時間為索引的序列,同時對時間資訊有多種方法來實現對資料的靈活操作。

時間序列的建立有多種方式,可以用to_datetime方法和date_range方法來實現。

時間序列支援索引和切片操作

rng = pd.date_range(

'2020'

,'2021'

, freq=

'w')

ts = pd.series(np.random.randn(

len(rng)

), index=rng)

ts['2020-01-26'

]# 混合形態的索引

ts['2020-01-26'

:'20200726'

]

採用dt物件可以輕鬆獲得關於時間的資訊,利用strftime可重新修改時間格式,對於datetime物件可以直接通過屬性獲取資訊。

對時序資料的操作中存在著類似groupby的分組操作,也就是所謂重取樣,指的resample函式。取樣之後必須配合其它方法比如sum、mean等,不然返回的只是個內部位址。取樣組可以迭代,取樣組的迭代和groupby迭代完全類似,對於每乙個組都可以分別做相應操作。

最後是視窗函式,主要是rolling和expanding,它們的作用是規定乙個視窗,然後配合聚合函式來使用。主要的引數是window和min_periods,前者指定視窗寬度,後者是指需要的非缺失資料點數量閥值。

問題與練習

【問題一】如何對date_range進行批量加幀操作或對某一時間段加大時間戳密度?

我對加幀的理解是在兩行時序資料之間插入新資料,不知道這樣對不對:

import pandas as pd

import numpy as np

rng = pd.date_range(start=

'2020/1/1'

, end=

'2020/1/10'

, periods=3)

ts = pd.series(np.random.randn(3)

, index=rng)

for i in

range(0

,len

(ts)-1

):irng = pd.date_range(start=ts.index[i]

, end=ts.index[i+1]

, periods=5)

its = pd.series(np.random.randn(

len(irng)

), index=irng)

dict

(zip

([its.index.astype(

'str')[

1:(len

(its)-1

)]], its[1:

(len

(its)-1

)]))

, ignore_index=

true

)print

(ts.index(

))

【問題二】如何批量增加timestamp的精度?

import pandas as pd

pd.timestamp(

'2020-01-01'

)+ pd.offset.second(

0)

【問題三】對於超出處理時間的時間點,是否真的完全沒有處理方法?

可以將超出處理時間的時間點減去最大時間,將差值記錄下來儲存到值中。

【問題四】給定一組非連續的日期,怎麼快速找出位於其最大日期和最小日期之間,且沒有出現在該組日期中的日期?

import pandas as pd

rng = pd.date_range(start=

'2020/1/1'

, end=

'2020/1/10'

, periods=2)

rng_all = pd.date_range(start=

'2020/1/1'

, end=

'2020/1/10'

, periods=4)

print

(rng_all[

~rng_all.isin(rng)

])

Python資料分析 Pandas學習

dataframe是乙個類似於 的資料型別,如圖 data 方框內的資料 numpy ndarray structured or homogeneous dict,or dataframe index 行索引索引 index or array like columns 列索引 index or ar...

資料分析 pandas

pandas是乙個強大的python資料分析的工具包,它是基於numpy構建的,正因pandas的出現,讓python語言也成為使用最廣泛而且強大的資料分析環境之一。pandas的主要功能 具備對其功能的資料結構dataframe,series 整合時間序列功能 提供豐富的數 算和操作 靈活處理缺失...

資料分析學習 使用Pandas進行資料分析

在對資料進行分析時,首先需要了解相關的名詞在該行業裡的含義,即查閱相關知識對題目進行整體把握。下面是進行資料分析的步驟 1 讀取資料 import pandas as pd data pd.read csv data train.csv 2 對資料進行預處理 具體包括 1 剔除空白值超過一半的列 h...