創建DatetimeIndex
1. pd.date_range(start= '2018-05-01', end= '2018-12-31')
2. pd.date_range(start='2018-05-01' ,periods = 100)# 產生100個Datetime
3. pd.date_range(start='2018-05-01' ,periods = 100,freq = 'W')#每週一間隔
freq =‘H’ | 每小時爲間隔 |
---|---|
freq = ‘5H’ | 每5小時爲間隔 |
freq = ‘D’ | 每天爲間隔 |
freq = ‘W’ | 每週爲分隔 |
freq =‘W-MON’ | 每週爲分隔,週一爲間隔的起點 |
數據類型轉換爲時間序列類型
- 設置列爲DataFrame類型
* df['col1'] = pd.to_datetime(df['col1'],format = '%Y-%m-%d')
* #format 設置顯示日期精度、格式
- 設置索引爲DatetimeIndex類型
# 讀取文件時,將date列讀取爲index,此時索引類型爲obj
df = pd.read_csv('1.csv',index_col= 'date')
# 將索引類型更改爲DatetimeIndex
df.index = pd.DatetimeIndex(df.index)# 可直接多索引進行操作
注意index的值爲日期,所以才能轉換爲Datetime
- 對時間序列的切片
df = pd.DataFrame(np.random.randn(100,4),index = pd.date_range('20181031',periods=100,freq='W'))
df.loc['2018']
df.loc['2018-11']
0 1 2 3
2018-11-04 1.512598 0.049858 -0.958455 0.714407
2018-11-11 -0.906760 1.118072 -0.705264 0.323554
2018-11-18 0.789005 -1.583082 0.463199 -1.340168
2018-11-25 0.532485 -1.433163 0.521303 1.221758
Ser = pd.Series(np.random.randn(1000),pd.date_range('20181031',periods=1000))
Ser['2018']
Ser['20181111':'20181116']
2018-11-11 0.360134
2018-11-12 1.886571
2018-11-13 -0.609659
2018-11-14 0.703976
2018-11-15 -1.182582
2018-11-16 -0.080813
Freq: D, dtype: float64
- 換算精確到年、月、日——單位換算
df.col_1.values.astype('datetime64[M]')
#假設換算前列單位爲ns,現在則爲month
|datetime64[Y]|年份|
|datetime64[M]|月份|
|datetime64[D]|天|
爲精確到年月日格式
5. 其他
```python
np.datetime64('today') #今天,單位天
* /np.timedelta64[1,'D']
1. 消除單位'days'
2. datetime列除以
3. eg,假設df.col_1爲時間序列,精確度爲day:
df.col_1_new = df.col_1/np.timedelta64[1,'D']
df.col_1_new的單位day就消除了,可以看作只是一列數字了