Pandas 提供了一个特殊的 Timestamp 对象,用于表示日期和时间。Timestamp 是 Pandas 中用于处理时间序列数据的核心数据类型,它基于 Python 的 datetime 模块,但提供了更多的功能和更好的性能。
解释 | 输入 | 输出 |
---|---|---|
使用 python 的 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') |
依次定义 year, month, day,hour, minute, second, microsecond: | pd.Timestamp(2017, 1, 1, 12) |
Timestamp('2017-01-01 12:00:00') |
直接定义 year, month, day,hour, minute, second, microsecond: | 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') |
Timestamp('2020-06-09 16:11:56.532981') |
现在 | pd.Timestamp('now') |
Timestamp('2020-06-09 16:11:56.532981') |
只取日期 | pd.Timestamp('today').date() |
datetime.date(2022, 4, 16) |
年份 | ||
算出昨天 | 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') |
时间限制,纳秒粒度,64位整数(大约584年) | pd.Timestamp.min |
Timestamp('1677-09-21 00:12:43.145225') |
时间限制,纳秒粒度,64位整数(大约584年) | pd.Timestamp.max |
Timestamp('2262-04-11 23:47:16.854775807') |
import numpy as np
import pandas as pd
time = pd.Timestamp('now')
Timestamp('2020-06-09 16:30:54.813664')
中文 | 属性 | 输出 |
---|---|---|
返回 numpy datetime64格式(以纳秒为单位)。 | time.asm8 | numpy.datetime64(‘2020-06-09T16:30:54.813664000’) |
周几,周一为0 | time.dayofweek | 1 |
周几,周一为0 | time.day_of_week | |
一年的第几天 | time.dayofyear | 161 |
一年的第几天 | time.day_of_year | 161 |
当月有多少天 | time.days_in_month | 30 |
当月有多少天 | time.daysinmonth | 30 |
周期字符 | time.freqstr | None |
是否闰年,公历的 | time.is_leap_year | True |
是否当月最后一天 | time.is_month_end | False |
是否当月第一天 | time.is_month_start | False |
是否当季最后一天 | time.is_quarter_end | False |
是否当季第一天 | time.is_quarter_start | False |
是否当年最后一天 | time.is_year_end | False |
是否当年第一天 | time.is_year_start | False |
当前季度数 | time.quarter | 2 |
当前时区别名 | time.tz | None |
当年第几周 | time.week | 24 |
当年第几周 | time.weekofyear | 24 |
年 | time.year | 2020 |
月 | time.month | 6 |
日 | time.day | 9 |
小时 | time.hour | 16 |
分钟 | time.minute | 46 |
秒 | time.second | 59 |
time.fold | 0 | |
频度周期 | time.freq | None |
time.microsecond | 890462 | |
time.nanosecond | 0 | |
time.tzinfo | None | |
time.value | 1591721219890462000 |
time = pd.Timestamp('now', tz='Asia/Shanghai')
## Timestamp('2020-06-09 16:55:58.027896+0800', tz='Asia/Shanghai')
中文 | 属性 | 输出 |
---|---|---|
转换为指定时区 | time.astimezone('UTC') |
Timestamp('2020-06-09 08:55:58.027896+0000', tz='UTC') |
转换单位,向上舍入,转为以秒为单位 | time.ceil('s') |
Timestamp('2020-06-09 16:55:59+0800', tz='Asia/Shanghai') |
转为以纳秒为单位 | time.ceil('ns') |
|
保留日 | time.ceil('d') |
|
保留时 | time.ceil('h') |
|
转换单位, 为向下舍入,保留时 | time.floor('h') |
Timestamp('2020-06-09 17:00:00+0800', tz='Asia/Shanghai') |
类似四舍五入,保留时 | time.round('h') |
|
返回星期名 | time.day_name() |
'Tuesday' |
月份名称 | time.month_name() |
'June' |
将时间戳规范化为午夜,保留tz信息。 | time.normalize() |
Timestamp('2020-06-09 00:00:00+0800', tz='Asia/Shanghai') |
时间元素替换 datetime.replace,年份换为2019年,可处理纳秒。 | time.replace(year=2019) |
Timestamp('2019-06-09 17:14:44.126817+0800', tz='Asia/Shanghai') |
月份换为8月 | time.replace(month=8) |
Timestamp('2020-08-09 17:14:44.126817+0800', tz='Asia/Shanghai') |
转为周期类型,将丢失时区,周期为小时 | time.to_period(freq='h') |
Period('2020-06-09 17:00', 'H') |
转为指定时区,转为 utc 时间 | time.tz_convert('UTC') |
Timestamp('2020-06-09 09:14:44.126817+0000', tz='UTC') |
本地化时区转换 | time = pd.Timestamp('now') |
Timestamp('2020-06-09 17:32:47.388726+0800', tz='Asia/Shanghai') |
本地化时区转换 | time.tz_localize('Asia/Shanghai') |
Timestamp('2020-06-09 17:32:47.388726+0800', tz='Asia/Shanghai') |
删除时区 | time.tz_localize(None) |