其他分享
首页 > 其他分享> > pandas-时间序列与日期用法(二)

pandas-时间序列与日期用法(二)

作者:互联网

本节介绍时间戳

1.时间戳是最基本的时间序列数据,用于把数值与时点关联在一起。Pandas 对象通过时间戳调用时点数据。

2. 大多数情况下,用时间段改变变量更自然。Period 表示的时间段更直观,还可以用日期时间格式的字符串进行推断。 

3. Timestamp与Period可以用作索引。作为索引的 Timestamp 与 Period 列表则被强制转换为对应的 DatetimeIndex与PeriodIndex

 Pandas 可以识别这两种表现形式,并在两者之间进行转化。Pandas 后台用 Timestamp 实例代表时间戳,用 DatetimeIndex 实例代表时间戳序列。pandas 用 Period 对象表示符合规律的时间段标量值,用 PeriodIndex 表示时间段序列。未来版本将支持用任意起止时间实现不规律时间间隔

4. 转换时间戳

to_datetime 函数用于转换字符串、纪元式及混合的日期Series或日期列表。转换的是 Series 时,返回的是具有相同的索引的 Series,日期时间列表则会被转换为 DatetimeIndex

解析欧式日期(日-月-年),要用 dayfirst 关键字参数(但是没发现有什么区别):

to_datetime 转换单个字符串时,返回的是单个 TimestampTimestamp 仅支持字符串输入,不支持 dayfirstformat 等字符串解析选项,如果要使用这些选项,就要用 to_datetime Pandas 还支持直接使用 DatetimeIndex 构建器:

创建 DatetimeIndex 时,传递字符串 infer 即可推断索引的频率。 5. 使用format提供格式参数

 要实现精准转换,除了传递 datetime 字符串,还要指定 format 参数,指定此参数还可以加速转换速度。

6. 用多列组合日期时间 

pandas 还可以把 DataFrame 里的整数或字符串列组合成 Timestamp Series

pd.to_datetime 查找列名里日期时间组件的标准名称,包括:

 7. 无效数据

 不可解析时,默认值 errors='raise' 会触发错误:

errors='ignore' 返回原始输入: errors='coerce' 把无法解析的数据转换为 NaT,即不是时间(Not a Time):

 8. 纪元时间戳

 pandas 支持把整数或浮点数纪元时间转换为 Timestamp 与 DatetimeIndex。鉴于 Timestamp 对象内部存储方式,这种转换的默认单位是纳秒。不过,一般都会用指定其它时间单位 unit 来存储纪元数据,纪元时间从 origin 参数指定的时点开始计算。

用带 tz 参数的纪元时间戳创建Timestamp或DatetimeIndex时,要先把纪元时间戳转化为 UTC,然后再把结果转换为指定时区。不过这种操作方式现在已经废弃了,对于其它时区 Wall Time 里的纪元时间戳,建议先把纪元时间戳转换为无时区时间戳,然后再把时区本地化 

9. 把时间戳转换为纪元 

 反转上述操作,把 Timestamp 转换为 unix 纪元:

首先与纪元开始时点(1970 年 1 月 1 日午夜,UTC)相减,然后以 1 秒为时间单位(unit='1s')取底整除。 10. 应用 origin 参数

 origin 参数可以指定 DatetimeIndex 的备选开始时点。例如,把1960-01-01 作为开始日期:

默认值为 origin='unix',即 1970-01-01 00:00:00,一般把这个时点称为 unix 纪元 或 POSIX 时间。 

 

 

标签:转换,Timestamp,用法,字符串,时间,序列,DatetimeIndex,pandas,纪元
来源: https://blog.csdn.net/qq_14815199/article/details/121062517