• 主页

  • 投资

  • IT

    🔥
  • 设计

  • 销售

  • 共95篇

    python3.X - 数据分析 - Pandas

关闭

返回栏目

关闭

返回python3.X - 数据分析 - Pandas栏目

24 - 数据类型 - pd.Timestamp() - 时间

作者:

贺及楼

成为作者

更新日期:2024-08-14 11:31:12

pd.Timestamp()时间

简介

Pandas 提供了一个特殊的 Timestamp 对象,用于表示日期和时间。Timestamp 是 Pandas 中用于处理时间序列数据的核心数据类型,它基于 Python 的 datetime 模块,但提供了更多的功能和更好的性能。

创建pd.Timestamp(‘2012-05-01’)

解释 输入 输出
使用 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')

时间属性

  1. import numpy as np
  2. import pandas as pd
  3. time = pd.Timestamp('now')
  4. 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

时间方法()

  1. time = pd.Timestamp('now', tz='Asia/Shanghai')
  2. ## 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)