当前位置: 代码迷 >> 综合 >> datetime数据类型——min()获取最早日期、date_range()创建日期范围、Timestamp()创建时间戳、tz()时区变换
  详细解决方案

datetime数据类型——min()获取最早日期、date_range()创建日期范围、Timestamp()创建时间戳、tz()时区变换

热度:100   发布时间:2023-12-01 09:50:23.0

目录

min():获取最早日期

date_range:创建日期范围

偏移量参数

Timestamp:创建时间戳

tz:时区

tz参数用于指定时区

tz_localize:用于对时区进行编码

to_convert:变换时区


min():获取最早日期

>>> import pandas as pd
>>> ebola=pd.read_csv(r'D:\pandas活用\pandas_for_everyone-master\data/country_timeseries.csv',parse_dates=[0])
>>> print(ebola['Date'].min())
2014-03-22 00:00:

date_range:创建日期范围

>>> r=pd.date_range(start='1999-12-01',end='1999-12-31')
>>> print(r)
DatetimeIndex(['1999-12-01', '1999-12-02', '1999-12-03', '1999-12-04','1999-12-05', '1999-12-06', '1999-12-07', '1999-12-08','1999-12-09', '1999-12-10', '1999-12-11', '1999-12-12','1999-12-13', '1999-12-14', '1999-12-15', '1999-12-16','1999-12-17', '1999-12-18', '1999-12-19', '1999-12-20','1999-12-21', '1999-12-22', '1999-12-23', '1999-12-24','1999-12-25', '1999-12-26', '1999-12-27', '1999-12-28','1999-12-29', '1999-12-30', '1999-12-31'],dtype='datetime64[ns]', freq='D')

偏移量参数

date_range中有一个的参数freq,用于在你指定的范围之中进行选择,可以选择工作日(B)、月初(MS)、月末工作日(BM)、季度初工作日(BQS)等。

下面给出个别示例,freq全部可能的参考取值可以参考date_range创建日期范围freq参数取值表_我就是一个小怪兽的博客-CSDN博客

>>> r=pd.date_range(start='1999-12-01',end='1999-12-31',freq='B')
>>> print(r)
DatetimeIndex(['1999-12-01', '1999-12-02', '1999-12-03', '1999-12-06','1999-12-07', '1999-12-08', '1999-12-09', '1999-12-10','1999-12-13', '1999-12-14', '1999-12-15', '1999-12-16','1999-12-17', '1999-12-20', '1999-12-21', '1999-12-22','1999-12-23', '1999-12-24', '1999-12-27', '1999-12-28','1999-12-29', '1999-12-30', '1999-12-31'],dtype='datetime64[ns]', freq='B')>>> r=pd.date_range(start='1999-12-01',end='1999-12-31',freq='BM')
>>> print(r)
DatetimeIndex(['1999-12-31'], dtype='datetime64[ns]', freq='BM'>>> r=pd.date_range(start='1999-1-01',end='1999-12-31',freq='BQS')
>>> print(r)
DatetimeIndex(['1999-01-01', '1999-04-01', '1999-07-01', '1999-10-01'], dtype='datetime64[ns]', freq='BQS-JAN')

Timestamp:创建时间戳

>>> depart=pd.Timestamp('2022-08-29 07:00',tz='US/Eastern')#tz用于指定时区,将在时间戳下面简单介绍
>>> print(depart)
2022-08-29 07:00:00-04:00
>>> print(type(depart))
<class 'pandas._libs.tslibs.timestamps.Timestamp'>

tz:时区

python的pytz库专门用于处理时区

tz参数用于指定时区

>>> depart=pd.Timestamp('2022-08-29 07:00',tz='US/Eastern')
>>> print(depart)
2022-08-29 07:00:00-04:00

tz_localize:用于对时区进行编码

>>> arrive=pd.Timestamp('2022-08-29 07:00')
>>> print(arrive)
2022-08-29 07:00:00
>>> arrive=arrive.tz_localize('US/Eastern')#将创建的到达时间的时区指定为美国东部
>>> print(arrive)
2022-08-29 07:00:00-04:00

to_convert:变换时区

这里的变换时区必须赋值给日期原本的变量,才能使该日期变量的时区得到变化

>>> depart=pd.Timestamp('2022-08-29 07:00',tz='US/Eastern')
>>> arrive=pd.Timestamp('2022-08-29 12:00')
>>> arrive=arrive.tz_localize('US/Pacific')
>>> print(arrive.tz_convert('US/Eastern'))
2022-08-29 15:00:00-04:00
#只有相同时区的时间才能进行运算,上面的时区转换并没有赋值给arrive,因此并没有对实际的arrive的时区有所改变,在这里需要先进行转换才能进行运算
>>> print(arrive.tz_convert('US/Eastern')-depart)
0 days 08:00:00
  相关解决方案