赞
踩
Pandas提供了四种类型的生成日期时间的对象:日期时间、时间增量、时间跨度、日期偏移量
(1)日期时间(Date Times):具有时区支持的特定日期和时间。与Python标准库中的datetime.datetime类似。如2020年12月6日13点37分50秒;
(2)时间增量(Time Deltas):绝对持续时间,用于在指定时间点基础上增加指定的增量,如在某年月日的基础上增加2天、增加2个月、减少4小时等,最后产生一个新的时间点;
(3)时间跨度(Time Span):由时间点及其相关周期定义的时间跨度,如连续产生一年四个季度的时间序列;
(4)日期偏移(Date Offsets):以日历计算的相对持续时间,表示时间间隔,两个时间点之间的长度,如日、周、月、季度、年。
获取当前时刻的时间就是获取此时此刻与时间相关的数据,除了具体的年、月、日、时、分、秒,还会单独看年、月、周、日等指标。
返回当前时刻的日期和时间在Python中借助函数 now() 实现。
from datetime import datetime
datetime.now()
datetime.datetime(2020, 12, 6, 14, 9, 55, 720085)
datetime.date(datetime.now()) # 获取当前日期
datetime.date(2020, 12, 6)
datetime.time(datetime.now()) # 获取当前时间
datetime.time(14, 11, 51, 776782)
返回当前时刻的年份在Python中借助函数 year 实现
datetime.now().year
2020
返回当前时刻的月份在Python中借助函数 month 实现
datetime.now().month
11
返回当前时刻的日在Excel和Python中都借助函数 day 实现
datetime.now().day
19
与当前时刻的周相关的数据有两个,一个是当前时刻是一周中的周几,另一个是返回当前时刻所在的周在全年的周里面是第几周。
返回当前时刻是周几在Python中借助 weekday() 函数实现。
datetime.now().weekday()+1
4
Attention :Python中周几是从0开始数的,所以在后面加1
返回当前时刻所在周的周数,在Python中使用的是 isocalendar() 函数。
datetime.now().isocalendar()
(2020, 47, 4)
2020年的第47周的第4天
datetime.now().isocalendar()[1]
47
Pandas库也提供了类似的日期时间对象 pd.Timestamp
import pandas as pd
pd.Timestamp("2020-12-06")
Timestamp('2020-12-06 00:00:00')
pd.Timestamp(2020,12,6,13,19,52)
Timestamp('2020-12-06 13:19:52')
pd.Timestamp(year=2020,month=12,day=6,hour=14,minute=19,second=52) # 键值对形式指定年月日时分秒
Timestamp('2020-12-06 14:19:52')
pd.Timestamp(2020,12,6,13,19,52).year # 通过year、month、day属性获取年月日
2020
借助 date() 函数将日期和时间设置成只展示日期。
datetime.now().date()
datetime.date(2020, 11, 19)
借助 time() 函数将日期和时间设置成只展示时间。
datetime.now().time()
datetime.time(15, 1, 27, 19303)
借助 strftime() 函数可以自定义时间和日期的格式,strftime() 函数是将日期和时间的格式转化为某些自定义的格式,具体的格式有以下几种
datetime.now().strftime("%F")
'2020-11-19'
datetime.now().strftime("%F %H:%M:%S")
'2020-11-19 15:04:31'
基于时间序列的数据记录,可以通过Series、DataFrame的索引值来记录时间点,可以同步记录对应时间点的数据元素。
通过 pd.Timestamp 与 pd.DatetimeIndex 方法建立指定时间序列的Series对象
import pandas as pd
import numpy as np
T1 = pd.Series(np.arange(4),index=[pd.Timestamp("2020-12-6"),pd.Timestamp("2020-12-7"),pd.Timestamp("2020-12-8"),pd.Timestamp("2020-12-9")])
print(T1) # 指定4个时间点为索引值
print("="*30)
T1.index # pandas 自动把索引归类为日期时间索引
2020-12-06 0
2020-12-07 1
2020-12-08 2
2020-12-09 3
dtype: int32
==============================
DatetimeIndex(['2020-12-06', '2020-12-07', '2020-12-08', '2020-12-09'], dtype='datetime64[ns]', freq=None)
T1 = pd.Series(np.arange(4),index=pd.DatetimeIndex(["2020-12-6","2020-12-7","2020-12-8","2020-12-9"]))
print(T1)
print("="*30)
T1.index
2020-12-06 0
2020-12-07 1
2020-12-08 2
2020-12-09 3
dtype: int32
==============================
DatetimeIndex(['2020-12-06', '2020-12-07', '2020-12-08', '2020-12-09'], dtype='datetime64[ns]', freq=None)
pd.date_range()函数用于产生连续的时间序列
pd.date_range(start=None,end=None,periods=None,freq=None,tz=None,normalize=False,name=None,close=None,**kwargs)
start :字符串或者类似datetime类型的值,可选,设置开始日期,必须与end参数搭配使用
end :字符串或者类似datetime类型的值,可选,设置结束日期
periods :整数,可选,设置要生成的日期周期数(也叫绝对增量),或者说在start指定开始日期的基础上,按照指定频率(freq)需要连续生成的日期数量,结合freq参数一起使用
freq :字符串或者DateOffest类型值设置需要生成的日期间隔频率,默认值为"D","D"
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。