pandas时刻数据:Timestamp
时刻数据表示时间点,是pandas的数据类型,是将值与时间点相关联的最直接的时间序列数据。
1.pandas.Timestamp():
date1='20170101'
date2=datetime.datetime(2017,10,1,15,0)
t1=pd.Timestamp(date1)
t2=pd.Timestamp(date2)
print(t1,type(t1))
print(t2,type(t2))
print(date2,type(date2))
2017-01-01 00:00:00 <class 'pandas._libs.tslib.Timestamp'>
2017-10-01 15:00:00 <class 'pandas._libs.tslib.Timestamp'>
2017-10-01 15:00:00 <class 'datetime.datetime'>
可以看到Timestamp()方法和datetime.datetime()方法的用法类似,只是格式不同,Timestamp是pandas中的时间戳,datetime.datetime是datetime模块中的数据类型,另外,Timestamp()可以识别多种字符串时间类型。
2.pandas.to_datetime()也有与Timestamp()类似的用法:
如果是单个数据,转化为pandas的时刻数据,数据类型为Timestamp。
t1=pd.to_datetime(date1)
t2=pd.to_datetime(date2)
print(t1,type(t1))
print(t2,type(t2))
2017-01-01 00:00:00 <class 'pandas._libs.tslib.Timestamp'>
2017-10-01 15:00:00 <class 'pandas._libs.tslib.Timestamp'>
如果是多个时间数据,转换为pandas的时间序列——datetimeindex:
date3=['20170102','20170103','20170104']
t3=pd.to_datetime(date3)
print(t3,type(t3))
DatetimeIndex(['2017-01-02', '2017-01-03', '2017-01-04'], dtype='datetime64[ns]', freq=None) <class 'pandas.core.indexes.datetimes.DatetimeIndex'>
当一组时间序列里夹杂其他格式数据时,需设置errors参数:
errors=’ignore’:不可解析时返回原始输入,这里就直接生成一般数组。
errors=’coerce’:不可扩展,缺失值返回NaT(Not a time),结果却仍为datetimeindex。
date3=['20170102','20170103','aaa','20170104']
t3=pd.to_datetime(date3,errors='ignore')
print(t3,type(t3))
['20170102' '20170103' 'aaa' '20170104'] <class 'numpy.ndarray'>
t3=pd.to_datetime(date3,errors='coerce')
print(t3,type(t3))
DatetimeIndex(['2017-01-02', '2017-01-03', 'NaT', '2017-01-04'], dtype='datetime64[ns]', freq=None) <class 'pandas.core.indexes.datetimes.DatetimeIndex'>