DataFrame(11):时间处理

时间处理是我们日常工作中遇到的基本问题

1、比较常用的时间处理函数

year 、month、day、hour、minute、second、quarter、dayofweek、dayofyear、date、time、month_name()、day_name() 、isocalendar().week

df.time.astype('datetime64')
df.time.dt.dayofyear
df.time.dt.dayofweek
df.time.dt.quarter
df.time.dt.time
df.time.dt.date
df.time.dt.second
df.time.dt.minute
df.time.dt.hour
df.time.dt.day
df.time.dt.month
df.time.dt.year
df.time.dt.month_name()
df.time.dt.day_name()
df.time.dt.isocalendar().week
df.time.dt.to_period('M')
df.time.dt.to_pydatetime()

is_month_start、is_month_end 、is_year_start、is _year_end、is_quarter_start、is_quarter_end、daysinmonth、is_leap_year

df.time.dt.is_leap_year
df.time.dt.daysinmonth
df.time.dt.is_quarter_start
df.time.dt.is_quarter_end
df.time.dt.is_year_end
df.time.dt.is_year_start
df.time.dt.is_month_end
df.time.dt.is_month_start
df.time.dt.ceil('H')
df.time.dt.floor('H')
df.time.dt.round('H')

pd.date_range(start=None, end=None, periods=None, freq=None, tz=None, normalize=False, name=None, closed=None, **kwargs) ,该函数主要用于生成一个固定频率的时间序列,在调用构造方法时,必须指定start、end、periods中的两个参数值,否则报错。

参数:
-start:时间开始
-end:时间结束
-periods:固定时期,取值为整数或None
-freq:日期偏移量,取值为string或DateOffset,默认为'D'
-tz:时区,如tz='Asia/Shanghai'
-normalize:若参数为True表示将start、end参数值正则化到午夜时间戳
-name:生成时间索引对象的名称,取值为string或None
-closed:None,左右边界都要,'left'只要左边界,'right'只要右边界
pd.date_range(start='20200101',end='20200102',freq='2h10min')
pd.date_range(start='20200101',end='20200102',freq='H')
pd.date_range(start='20200101',end='20200102',freq='min')
pd.date_range(start='20200101',end='20200102',freq='s')
pd.date_range(start='20200101',end='20200130')
pd.date_range(start='20200101',end='20200130',freq=pd.offsets.Day())
pd.date_range(start='20200101',end='20200130',freq='D')
pd.date_range(start='20200101',end='20200130',freq=pd.offsets.BDay())
pd.date_range(start='20200101',end='20200130',freq='B')
pd.date_range(start='20200101',end='20200130',freq='W')
pd.date_range(start='20200101',end='20200131',freq='W-MON')
pd.date_range(start='2020',end='2022',freq='YS')
pd.date_range(start='2020',end='2022',freq='AS')
pd.date_range(start='2020',end='2022',freq='A')
pd.date_range(start='2020',end='2021',freq='Q')
pd.date_range(start='2020',end='2021',freq='BMS')
pd.date_range(start='2020',end='2021',freq='BM')
pd.date_range(start='2020',end='2021',freq='MS')
pd.date_range(start='2020',end='2021',freq='M')
pd.date_range(start='2020',end='2021',freq='SM')

pd.bdate_range(start=None, end=None, periods=None, freq=’B’, tz=None, normalize=True, name=None, weekmask=None, holidays=None, closed=None, **kwargs),bdate_range函数:生成工作日时间,用法同date_range函数

参数:
-start:时间开始
-end:时间结束
-periods:固定时期,取值为整数或None
-freq:日期偏移量,取值为string或DateOffset,默认为'D'
-tz:时区,如tz='Asia/Shanghai'
-normalize:若参数为True表示将start、end参数值正则化到午夜时间戳
-name:生成时间索引对象的名称,取值为string或None
-weekmask:str或None,默认为None
-holidays:list-like or None, default None
-closed:None,左右边界都要,'left'只要左边界,'right'只要右边界
pd.bdate_range(start = '2022-01-01',end='2022-01-10')
pd.bdate_range(start = '2022-01-01',freq= 'D',periods=4)
pd.bdate_range(start = '2022-01-01',freq= 'D',tz='Asia/Shanghai',periods=4)
pd.bdate_range(start = '2022-01-01 00:30',freq= 'H',periods=4,normalize=False)
pd.bdate_range(start = '2022-01-01 00:30',freq= 'H',periods=4,normalize=True)
pd.bdate_range(start = '2022-01-01 00:30',freq= 'H',periods=4,normalize=False,name='time')
pd.bdate_range(start = '2022-01-01 00:30',freq= 'H',periods=4,normalize=False,closed='right')
pd.bdate_range(start = '2022-01-01 00:30',end = '2022-01-01 10:30',freq= 'H',normalize=False,closed='left')

2.时间查询函数

between_time :返回位于一天的特定时间之间的值
–参数 start_time, end_time, include_start=True, include_end=True, axis=None
indexer_between_time:返回位于一天的特定时间之间的值的索引位置
–参数 start_time, end_time, include_start=True, include_end=True

df.time.between_time(start_time='03:00',end_time='6:00')
df.time.between_time(start_time='03:00',end_time='6:00',include_end=False)
df.time.between_time(start_time='03:00',end_time='6:00',include_start=False)
df.time.index.indexer_between_time(start_time='03:00',end_time='6:00',include_start=False)
df.time.index.indexer_between_time(start_time='03:00',end_time='6:00')

at_time :返回位于一天的特定时间的值
–参数 time, asof=False, axis=None
indexer_at_time:返回位于一天的特定时间的值的索引位置
–参数 time, asof=False

df.index.indexer_at_time(time='03:00')
df.at_time(time='03:00')
df.at_time(time='03:30',asof=False)
df.at_time(time='3:')

Original: https://blog.csdn.net/m0_46128639/article/details/121975381
Author: lghpy01
Title: DataFrame(11):时间处理

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/742914/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球