看过来
《pandas 教程》 持续更新中,提供建议、纠错、催更等加作者微信: gairuo123(备注:pandas教程)和关注公众号「盖若」ID: gairuo。跟作者学习,请进入 Python学习课程。欢迎关注作者出版的书籍:《深入浅出Pandas》 和 《Python之光》。
带时间戳的数据是时间序列数据的最基本类型,它将值与时间点相关联,对它可以进行相关的时间操作,如何定义转换当非常关键。同时一个具体的时间包含了非常丰富的信息,如年份、在周几、在几月、在哪个季度,需要我们进行属性的读取。
pd.Timestamp()
是定义时间的主要函数,代替 python 中的 datetime.datetime 对象。
import datetime
# 至少需要年月日
pd.Timestamp(datetime.datetime(2020, 6, 8))
# Timestamp('2020-06-08 00:00:00')
# 指定是时分秒
pd.Timestamp(datetime.datetime(2020, 6, 8, 16, 17, 18))
# Timestamp('2020-06-08 16:17:18')
pd.Timestamp('2012-05-01')
# Timestamp('2012-05-01 00:00:00')
pd.Timestamp('2017-01-01T12')
# Timestamp('2017-01-01 12:00:00')
可以依次定义 year, month, day,hour, minute, second, microsecond:
pd.Timestamp(2012, 5, 1)
# Timestamp('2012-05-01 00:00:00')
pd.Timestamp(2017, 1, 1, 12)
# Timestamp('2017-01-01 12:00:00')
pd.Timestamp(year=2017, month=1, day=1, hour=12)
# Timestamp('2017-01-01 12:00:00')
pd.Timestamp(1513393355.5, unit='s') # 单位为秒
# Timestamp('2017-12-16 03:02:35.500000')
pd.Timestamp(1513393355, unit='s', tz='US/Pacific')
# Timestamp('2017-12-15 19:02:35-0800', tz='US/Pacific')
# 指定为北京时间
pd.Timestamp(1513393355, unit='s', tz='Asia/Shanghai')
# Timestamp('2017-12-16 11:02:35+0800', tz='Asia/Shanghai')
以下可取得当前时间,从而可通过属性取到今天日期、年份等信息:
pd.Timestamp('today')
pd.Timestamp('now')
# Timestamp('2020-06-09 16:11:56.532981')
pd.Timestamp('today').date() # 只取日期
也可以计算出昨天、明天等信息:
# 昨天
pd.Timestamp('now')-pd.Timedelta(days=1)
# Timestamp('2020-06-08 16:14:39.254365')
# 明天
pd.Timestamp('now')+pd.Timedelta(days=1)
# Timestamp('2020-06-10 16:15:28.019039')
# 当月初,一日
pd.Timestamp('now').replace(day=1)
# Timestamp('2020-06-01 16:15:28.019039')
由于 Pandas 以纳秒粒度表示时间戳,因此可以使用64位整数表示的时间跨度限制为大约584年:
pd.Timestamp.min
# Timestamp('1677-09-21 00:12:43.145225')
pd.Timestamp.max
# Timestamp('2262-04-11 23:47:16.854775807')
以上为支持的最早最晚时间。
更新时间:2020-11-04 14:36:07 标签:pandas 时间