Pandas最基本的时间序列类型就是以时间戳(通常以Python字符串或datetime对象表示)为索引的Series:
In [1]: import numpy as np
In [2]: import pandas as pd
In [3]: from pandas import Series,DataFrame
In [4]: from datetime import datetime
In [5]: dates=[datetime(2019,11,1),datetime(2019,11,2),datetime(2019,11,3),datetime(2019,11,4),datetime(2019,11,5),datetime(2019,11,6)]
In [6]: ts=Series(np.random.randn(6),index=dates)
In [7]: ts
Out[7]:
2019-11-01 -1.483564
2019-11-02 -2.145279
2019-11-03 -0.077868
2019-11-04 -1.102391
2019-11-05 -0.062100
2019-11-06 0.146439
dtype: float64
这些datetime对象实际上是被放在一个DatetimeIndex中的。现在,变量ts就成为一个Series[MOU1] 了:
In [8]: type(ts)
Out[8]: pandas.core.series.Series
In [9]: ts.index
Out[9]:
DatetimeIndex(['2019-11-01', '2019-11-02', '2019-11-03', '2019-11-04',
'2019-11-05', '2019-11-06'],
dtype='datetime64[ns]', freq=None)
与其他Series一样,不同索引的时间序列之间的算术运算会自动按日期对齐:
In [10]: ts+ts[::2]
Out[10]:
2019-11-01 -2.967127
2019-11-02 NaN
2019-11-03 -0.155736
2019-11-04 NaN
2019-11-05 -0.124200
2019-11-06 NaN
dtype: float64
pandas用numpy的datetime64数据类型以纳秒形式存储时间戳:
In [11]: ts.index.dtype
Out[11]: dtype('
DatetimeIndex中的各个标量值是pandas的Timestamp对象:
In [12]: stamp=ts.index[0]
In [13]: stamp
Out[13]: Timestamp('2019-11-01 00:00:00')
Timestamp对象可以随时自动转换为datetime对象。
此外,还可以存储频率信息,且知道如何执行时区转换以及其他操作。
「亲,如果笔记对您有帮助,收藏的同时,记得给点个赞、加个关注哦!感谢!」
「文中代码均亲测过,若有错误之处,欢迎批评指正,一起学习,一起成长!」