python里 类型为datetime.datetime
dateutil 和datetime包都在python里类型为datetime.datetime
而numpy和pandas 是新的数据类型所以有datatime64 的数据类型
datetime.datetime:对象类型
dtype=datetime64[ns]: 元素类型
freq: 时间频率 (“H”,”D”)
1.创建
from datetime import datetime
from dateutil import parser #第三方时间解析包
1.t1=datetime(year=2020,month=1,day=9)
2.parser.parse('2020.07.3')
3.pd.to_datetime(df['']) # 输入series,某一列
pd.to_datetime(df[''],errors='coerce, format='') #errors强制转换,不会报错
pd.date_range(start,end,periods,freq) #periods:生成几个数据点,freq:频率,"D"
利用第三方包创建更加方便返回的都是datetime.datetime
parser.parse(‘2020.07.3’)
parser.parse(‘2019-12-12 00:00:00’)
时间间隔:
d=parser.parse(‘2019-12-12 00:00:00’)-parser.parse(‘2019-12-10 10:00:00’)
2.提取年月日
序列提取:
.dt.year
.dt.month
# 直接获取年月日?
e3['year']=e3['birthday'].dt.year
e3['month']=e3['birthday'].dt.month
e3['day']=e3['birthday'].dt.day
e3
numpy时间类型
pandas时间类型
时间序列: date_range(开始时间,periods=n,
转化为日期格式
pd.to_datetime(‘单独一个/某一列) #解析数组 整体转换. 时间戳/datetime64
parse.parse(‘一个字符串’) #解析字符串 (单独日期时用)
date = pd.to_datetime('2020-12-09')
Timestamp('2020-12-09 00:00:00')
pd.to_timedelta(np.arange(12),'D')
#errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值NaT sql(%Y-%m-%d)
#format 是你原始数据中日期的格式
from datetime import datetime
data['购药时间']=pd.to_datetime(data['购药时间'],errors='coerce')
data.head()
把日期转化为固定格式:
#把时间转化为固定格式(字符串)%D,%d....y,m,d,h
date.strftime('%B')
'December'
时间间隔
pd.to_timedelta(np.arange(12),’D’)
pd.to_timedelta(np.arange(12),'D')
TimedeltaIndex([ '0 days', '1 days', '2 days', '3 days', '4 days',
'5 days', '6 days', '7 days', '8 days', '9 days',
'10 days', '11 days'],
dtype='timedelta64[ns]', freq=None)