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
转换单个字符串时,返回的是单个 Timestamp
。Timestamp
仅支持字符串输入,不支持 dayfirst
、format
等字符串解析选项,如果要使用这些选项,就要用 to_datetime
。 Pandas 还支持直接使用 DatetimeIndex
构建器:
创建 DatetimeIndex
时,传递字符串 infer
即可推断索引的频率。 5. 使用format提供格式参数
要实现精准转换,除了传递 datetime
字符串,还要指定 format
参数,指定此参数还可以加速转换速度。
6. 用多列组合日期时间
pandas 还可以把 DataFrame
里的整数或字符串列组合成 Timestamp Series
。
pd.to_datetime
查找列名里日期时间组件的标准名称,包括:
- 必填:
year
、month
、day
- 可选:
hour
、minute
、second
、millisecond
、microsecond
、nanosecond
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