python里 类型为datetime.datetime
dateutil 和datetime包都在python里类型为datetime.datetime
而numpy和pandas 是新的数据类型所以有datatime64 的数据类型
datetime.datetime:对象类型
dtype=datetime64[ns]: 元素类型
freq: 时间频率 (“H”,”D”)

1.创建

  1. from datetime import datetime
  2. from dateutil import parser #第三方时间解析包
  1. 1.t1=datetime(year=2020,month=1,day=9)
  2. 2.parser.parse('2020.07.3')
  3. 3.pd.to_datetime(df['']) # 输入series,某一列
  4. pd.to_datetime(df[''],errors='coerce, format='') #errors强制转换,不会报错
  5. 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

  1. # 直接获取年月日?
  2. e3['year']=e3['birthday'].dt.year
  3. e3['month']=e3['birthday'].dt.month
  4. e3['day']=e3['birthday'].dt.day
  5. e3

numpy时间类型

timestmap 时间戳 没撒用
timedelta

pandas时间类型

时间序列: date_range(开始时间,periods=n,

转化为日期格式
pd.to_datetime(‘单独一个/某一列) #解析数组 整体转换. 时间戳/datetime64
parse.parse(‘一个字符串’) #解析字符串 (单独日期时用)

  1. date = pd.to_datetime('2020-12-09')
  2. Timestamp('2020-12-09 00:00:00')
  3. pd.to_timedelta(np.arange(12),'D')
  1. #errors='coerce' 如果原始数据不符合日期的格式,转换后的值为空值NaT sql(%Y-%m-%d)
  2. #format 是你原始数据中日期的格式
  3. from datetime import datetime
  4. data['购药时间']=pd.to_datetime(data['购药时间'],errors='coerce')
  5. data.head()

把日期转化为固定格式:

  1. #把时间转化为固定格式(字符串)%D,%d....y,m,d,h
  2. date.strftime('%B')
  3. 'December'

时间间隔
pd.to_timedelta(np.arange(12),’D’)

  1. pd.to_timedelta(np.arange(12),'D')
  2. TimedeltaIndex([ '0 days', '1 days', '2 days', '3 days', '4 days',
  3. '5 days', '6 days', '7 days', '8 days', '9 days',
  4. '10 days', '11 days'],
  5. dtype='timedelta64[ns]', freq=None)