这篇文章主要介绍“怎么使用Pandas数据分析固定时间点和时间差”,在日常操作中,相信很多人在怎么使用Pandas数据分析固定时间点和时间差问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Pandas数据分析固定时间点和时间差”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
前言
pandas处理时间的对象有很多,分别表示不同的作用。
本次介绍固定时间对象和时间长对象。
还是先导入包:
import numpy as np import pandas as pd import datetime
固定时间 时间点对象的建立
时间点就表示一个时刻的具体时间,比如现在是2022年8月10日16:31:56。
时间对象的建立有很多方法。
#使用 python 的 datetime 库,至少需要年月日
datetime.datetime.now()
#指定时间 datetime.datetime(2022,8,10,10,5)
#pandas 等第三方库都是在datetime建立时间对象的 #pd.Timestamp() 是定义时间的主要函数,代替 python 中的 datetime.datetime 对象。 pd.Timestamp(datetime.datetime(2020, 6, 8))
指定时间字符串
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('2022-08-10 10: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')
时间属性
一个具体的时间包含了非常丰富的信息,如年份、在周几、在几月、在哪个季度,需要我们进行属性的读取。
#先创建一个时间 time = pd.Timestamp('now') time