1、生成一个时间段
In [1]:import pandas as pd
In [2]:import numpy as np
1)生成一个时间区间段,间隔为小时
In [3]:rng = pd.date_range("1/1/2011", periods=72, freq="H")
2)生成一个Series,并制定索引为时间段
In [4]:ts = pd.Series(np.random.randn(len(rng)), index=rng)
In [5]:ts
Out[5]:
2011-01-01 00:00:00 -0.204085
2011-01-01 01:00:00 1.101711
2011-01-01 02:00:00 1.840500
2011-01-01 03:00:00 0.112426
2011-01-01 04:00:00 -0.310413
2011-01-01 05:00:00 1.180762
2011-01-01 06:00:00 0.087775
2011-01-01 07:00:00 1.087877
2011-01-01 08:00:00 -0.950237
2011-01-01 09:00:00 -0.468453
Freq: H, dtype: float64
3)改变时间间隔
In [6]:converted = ts.asfreq("45Min", method="pad")
In [7]:converted
Out[7]:
2011-01-01 00:00:00 -0.204085
2011-01-01 00:45:00 -0.204085
2011-01-01 01:30:00 1.101711
2011-01-01 02:15:00 1.840500
2011-01-01 03:00:00 0.112426
2011-01-01 03:45:00 0.112426
2011-01-01 04:30:00 -0.310413
2011-01-01 05:15:00 1.180762
2011-01-01 06:00:00 0.087775
2011-01-01 06:45:00 0.087775
2011-01-01 07:30:00 1.087877
2011-01-01 08:15:00 -0.950237
2011-01-01 09:00:00 -0.468453
Freq: 45T, dtype: float64
2、转换为日期格式
2.1 数字生成日期格式
In [8]: pd.Timestamp(datetime(2012, 5, 1))
Out[8]: Timestamp("2012-05-01 00:00:00")
2.2 字符生成日期格式
In [9]: pd.Timestamp("2012-05-01")
Out[9]: Timestamp("2012-05-01 00:00:00")
2.3 只有年月
In [10]: pd.Period("2011-01")
Out[10]: Period("2011-01", "M")
In [11]: pd.Period("2012-05", freq="D")
Out[11]: Period("2012-05-01", "D")
2.4 转化为日期格式
In [22]: pd.to_datetime(pd.Series(["Jul 31, 2009", "2010-01-10", None]))
Out[22]:
0 2009-07-31
1 2010-01-10
2 NaT
dtype: datetime64[ns]
In [23]: pd.to_datetime(["2005/11/23", "2010.12.31"])
Out[23]: DatetimeIndex(["2005-11-23", "2010-12-31"], dtype="datetime64[ns]", freq=None)
3、生成一个时间段
3.1 生成索引的方法
In [35]: dates = [datetime(2012, 5, 1), datetime(2012, 5, 2), datetime(2012, 5, 3)]
Note the frequency information
In [36]: index = pd.DatetimeIndex(dates)
In [37]: index
Out[37]: DatetimeIndex(["2012-05-01", "2012-05-02", "2012-05-03"], dtype="datetime64[ns]", freq=None)
Automatically converted to DatetimeIndex
In [38]: index = pd.Index(dates)
In [39]: index
Out[39]: DatetimeIndex(["2012-05-01", "2012-05-02", "2012-05-03"], dtype="datetime64[ns]", freq=None)
date_range日历,bdate_range工作日
In [40]: index = pd.date_range("2000-1-1", periods=1000, freq="M")
In [41]: index
Out[41]:
DatetimeIndex(["2000-01-31", "2000-02-29", "2000-03-31", "2000-04-30",
"2000-05-31", "2000-06-30", "2000-07-31", "2000-08-31",
"2000-09-30", "2000-10-31",
...
"2082-07-31", "2082-08-31", "2082-09-30", "2082-10-31",
"2082-11-30", "2082-12-31", "2083-01-31", "2083-02-28",
"2083-03-31", "2083-04-30"],
dtype="datetime64[ns]", length=1000, freq="M")
In [42]: index = pd.bdate_range("2012-1-1", periods=250)
In [43]: index
Out[43]:
DatetimeIndex(["2012-01-02", &