pandas.to_datetime(arg,errors =『raise』,utc = none,format = none,unit = none )
pandas通常用於處理成組日期,不管這些日期是dataframe的軸索引還是列,to_datetime方法可以解析多種不同的日期表示形式。
(1)獲取指定的時間和日期
例如:df[』'date]資料型別為「object」,通過pd.to_datetime將該列資料轉換為時間型別,即datetime。
pandas時間序列基礎以及時間、日期處理
pandas最基本的時間序列型別就是以時間戳(時間點)(通常以python字串或datetime物件表示)為索引的series:
dates = [『2017-06-20』,『2017-06-21』,
『2017-06-22』,『2017-06-23』,『2017-06-24』,『2017-06-25』,『2017-06-26』,『2017-06-27』]
import numpy as np
ts = pd.series(np.random.randn(8),index = pd.to_datetime(dates))
ts2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64
ts.index
datetimeindex([『2017-06-20』, 『2017-06-21』, 『2017-06-22』, 『2017-06-23』,
『2017-06-24』, 『2017-06-25』, 『2017-06-26』, 『2017-06-27』],
dtype=『datetime64[ns]』, freq=none)
pandas不同索引的時間序列之間的算術運算會自動按日期對齊
ts[::2]#從前往後每隔兩個取資料
2017-06-20 0.788811
2017-06-22 0.009967
2017-06-24 0.981214
2017-06-26 -0.127258
dtype: float64
ts[::-2]#從後往前逆序每隔兩個取資料
2017-06-27 1.919773
2017-06-25 0.314127
2017-06-23 -1.024626
2017-06-21 0.372555
dtype: float64
ts + ts[::2]#自動資料對齊
2017-06-20 1.577621
2017-06-21 nan
2017-06-22 0.019935
2017-06-23 nan
2017-06-24 1.962429
2017-06-25 nan
2017-06-26 -0.254516
2017-06-27 nan
dtype: float64
索引為日期的series和dataframe資料的索引、選取以及子集構造
方法:1).index[number_int]
2)[乙個可以被解析為日期的字串]
3)對於,較長的時間序列,只需傳入『年』或『年月』可返回對應的資料切片
4)通過時間範圍進行切片索引
ts2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64
ts[ts.index[2]]
0.0099673896063391908
ts[『2017-06-21』]#傳入可以被解析成日期的字串
0.37255538918121028
ts[『21/06/2017』]
0.37255538918121028
ts[『20170621』]
0.37255538918121028
ts[『2017-06』]#傳入年或年月
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
2017-06-24 0.981214
2017-06-25 0.314127
2017-06-26 -0.127258
2017-06-27 1.919773
dtype: float64
ts[『2017-06-20』:『2017-06-23』]#時間範圍進行切片
2017-06-20 0.788811
2017-06-21 0.372555
2017-06-22 0.009967
2017-06-23 -1.024626
dtype: float64
帶有重複索引的時間序列
1).index.is_unique檢查索引日期是否是唯一的
2)對非唯一時間戳的資料進行聚合,通過groupby,並傳入level = 0(索引的唯一一層)
dates = pd.datetimeindex([『2017/06/01』,『2017/06/02』,『2017/06/02』,『2017/06/02』,『2017/06/03』])
dates
datetimeindex([『2017-06-01』, 『2017-06-02』, 『2017-06-02』, 『2017-06-02』,
『2017-06-03』],
dtype=『datetime64[ns]』, freq=none)
dup_ts = pd.series(np.arange(5),index = dates)
dup_ts
2017-06-01 0
2017-06-02 1
2017-06-02 2
2017-06-02 3
2017-06-03 4
dtype: int32
dup_ts.index.is_unique
false
dup_ts[『2017-06-02』]
2017-06-02 1
2017-06-02 2
2017-06-02 3
dtype: int32
grouped = dup_ts.groupby(level=0).mean()
grouped
2017-06-01 0
2017-06-02 2
2017-06-03 4
dtype: int32
dup_df = pd.dataframe(np.arange(10).reshape((5,2)),index = dates )
dup_df
pandas中DataFrame mean函式用法
mean 平均數 pandas中的df.mean 函式預設是等價於df.mean 0 即按軸方向求平均,得到每列資料的平均值。相反的df.mean 1 則代表按行方向求平均,得到每行資料的平均值。舉例 我們 首先匯入pandas包 import pandas as pd建立矩陣 首先使用預設方法 會...
Pandas中的分類
一 分類變數的結構 乙個分類變數包括三個部分,元素值 values 分類類別 categories 是否有序 order 從上面可以看出,使用cut函式建立的分類變數預設為有序分類變數 一 獲取分類屬性 a describe方法 該方法描述了乙個分類序列的情況,包括非缺失值個數 元素值類別數 不是分...
Pandas中resample方法詳解
pandas中的resample,重新取樣,是對原樣本重新處理的乙個方法,是乙個對常規時間序列資料重新取樣和頻率轉換的便捷的方法。方法的格式是 dataframe.resample rule how none axis 0 fill method none closed none label non...