創建和更改爲Datetime、DatetimeIndex,時間序列

創建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’ 每週爲分隔,週一爲間隔的起點

數據類型轉換爲時間序列類型

  1. 設置列爲DataFrame類型
* df['col1'] = pd.to_datetime(df['col1'],format = '%Y-%m-%d')
* #format 設置顯示日期精度、格式
  1. 設置索引爲DatetimeIndex類型
# 讀取文件時,將date列讀取爲index,此時索引類型爲obj
df = pd.read_csv('1.csv',index_col= 'date')

# 將索引類型更改爲DatetimeIndex
df.index = pd.DatetimeIndex(df.index)# 可直接多索引進行操作

注意index的值爲日期,所以才能轉換爲Datetime

  1. 對時間序列的切片
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

  1. 換算精確到年、月、日——單位換算
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就消除了,可以看作只是一列數字了
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章