datetime
生成datetime对象
- datetime(year,month,day,hour,minute,second,微秒)
- datetime.now():返回当前的日期时间
from datetime import datetime
datetime(2020, 5, 23, 8, 52, 30, 82549)
Out[3]: datetime.datetime(2020, 5, 23, 8, 52, 30, 82549)
datetime(2020, 5, 23)
Out[4]: datetime.datetime(2020, 5, 23, 0, 0)
datetime.now()
Out[5]: datetime.datetime(2020, 5, 31, 9, 48, 46, 968953)
生成date对象
from datetime import date
date(2020, 5, 23)
Out[6]: datetime.date(2020, 5, 23)
生成time对象
from datetime import time
time(8, 54, 9)
Out[7]: datetime.time(8, 54, 9)
生成timedelta对象
- 两datetime对象相减生成datedelta对象
datetime(2020, 5, 23) - datetime(1995, 6, 8)
Out[8]: datetime.timedelta(days=9116)
from datetime import timedelta
delta3 = timedelta(12,12900)
print(delta3)
Out[11]: datetime.timedelta(days=12, seconds=12900)
delta3.days
Out[12]: 12
delta3.seconds
Out[13]: 12900
字符串与datetime互相转换
datetime转字符串
datetime(2020, 5, 23).strftime('%Y-%m-%d')
Out[14]: '2020-05-23'
字符串转datetime
(1)strptime方法
datetime.strptime('5/20/2020',
'%m/%d/%Y'
)
Out[15]: datetime.datetime(2020, 5, 20, 0, 0)
(2)parse
from dateutil.parser import parse
parse('5/20/2020')
Out[16]: datetime.datetime(2020, 5, 20, 0, 0)
DatetimeIndex
生成时间戳索引
- pd.date_range用于根据指定频率生成指定长度的DatetimeIndex
pd.date_range('2012-04-10','2012-12-01',
freq='M'
)
Out[17]:
DatetimeIndex(['2012-04-30', '2012-05-31', '2012-06-30', '2012-07-31',
'2012-08-31', '2012-09-30', '2012-10-31', '2012-11-30'],
dtype='datetime64[ns]', freq='M')
pd.date_range('2012-04-10','2012-06-01',
freq='5D'
)
Out[18]:
DatetimeIndex(['2012-04-10', '2012-04-15', '2012-04-20', '2012-04-25',
'2012-04-30', '2012-05-05', '2012-05-10', '2012-05-15',
'2012-05-20', '2012-05-25', '2012-05-30'],
dtype='datetime64[ns]', freq='5D')
pd.date_range('2012-04-10','2012-04-11',
freq='2H30min'
)
Out[19]:
DatetimeIndex(['2012-04-10 00:00:00', '2012-04-10 02:30:00',
'2012-04-10 05:00:00', '2012-04-10 07:30:00',
'2012-04-10 10:00:00', '2012-04-10 12:30:00',
'2012-04-10 15:00:00', '2012-04-10 17:30:00',
'2012-04-10 20:00:00', '2012-04-10 22:30:00'],
dtype='datetime64[ns]', freq='150T')
pd.date_range('2012-04-10 12:56:31',
periods=8,
freq='2D'
)
Out[20]:
DatetimeIndex(['2012-04-10 12:56:31', '2012-04-12 12:56:31',
'2012-04-14 12:56:31', '2012-04-16 12:56:31',
'2012-04-18 12:56:31', '2012-04-20 12:56:31',
'2012-04-22 12:56:31', '2012-04-24 12:56:31'],
dtype='datetime64[ns]', freq='2D')
pd.date_range('2012-04-10 12:56:31',
periods=8,
freq='2D',
normalize=True
)
Out[21]:
DatetimeIndex(['2012-04-10', '2012-04-12', '2012-04-14', '2012-04-16',
'2012-04-18', '2012-04-20', '2012-04-22', '2012-04-24'],
dtype='datetime64[ns]', freq='2D')
pd.date_range('20120101','20120901',freq='WOM-3FRI')
Out[22]:
DatetimeIndex(['2012-01-20', '2012-02-17', '2012-03-16', '2012-04-20',
'2012-05-18', '2012-06-15', '2012-07-20', '2012-08-17'],
dtype='datetime64[ns]', freq='WOM-3FRI')
datestrs = ['2011-07-06 12:00:00', '2011-08-06 00:00:00']
pd.to_datetime(datestrs)
Out[23]: DatetimeIndex(['2011-07-06 12:00:00', '2011-08-06 00:00:00'], dtype='datetime64[ns]', freq=None)
时间戳索引操作
pd.Series(np.random.randn(5),index=pd.date_range('1/1/2000', periods=5))
Out[25]:
2000-01-01 0.782208
2000-01-02 2.133112
2000-01-03 -0.705192
2000-01-04 0.333761
2000-01-05 -0.605273
Freq: D, dtype: float64
- DatetimeIndex整数索引的结果为Timestamp对象
pd.date_range('20120101','20120901',freq='WOM-3FRI')[0]
Out[26]: Timestamp('2012-01-20 00:00:00', freq='WOM-3FRI')
pd.date_range('20120101','20120901',freq='WOM-3FRI').is_unique
Out[27]: True