当前位置: 首页 > news >正文

Python酷库之旅-第三方库Pandas(026)

目录

一、用法精讲

65、pandas.bdate_range函数

65-1、语法

65-2、参数

65-3、功能

65-4、返回值

65-5、说明

65-6、用法

65-6-1、数据准备

65-6-2、代码示例

65-6-3、结果输出

66、pandas.period_range函数

66-1、语法

66-2、参数

66-3、功能

66-4、返回值

66-5、说明

66-6、用法

66-6-1、数据准备

66-6-2、代码示例

66-6-3、结果输出 

67、pandas.timedelta_range函数

67-1、语法

67-2、参数

67-3、功能

67-4、返回值

67-5、说明

67-6、用法

67-6-1、数据准备

67-6-2、代码示例

67-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

65、pandas.bdate_range函数
65-1、语法
# 65、pandas.bdate_range函数
pandas.bdate_range(start=None, end=None, periods=None, freq='B', tz=None, normalize=True, name=None, weekmask=None, holidays=None, inclusive='both', **kwargs)
Return a fixed frequency DatetimeIndex with business day as the default.Parameters:
startstr or datetime-like, default None
Left bound for generating dates.endstr or datetime-like, default None
Right bound for generating dates.periodsint, default None
Number of periods to generate.freqstr, Timedelta, datetime.timedelta, or DateOffset, default ‘B’
Frequency strings can have multiples, e.g. ‘5h’. The default is business daily (‘B’).tzstr or None
Time zone name for returning localized DatetimeIndex, for example Asia/Beijing.normalizebool, default False
Normalize start/end dates to midnight before generating date range.namestr, default None
Name of the resulting DatetimeIndex.weekmaskstr or None, default None
Weekmask of valid business days, passed to numpy.busdaycalendar, only used when custom frequency strings are passed. The default value None is equivalent to ‘Mon Tue Wed Thu Fri’.holidayslist-like or None, default None
Dates to exclude from the set of valid business days, passed to numpy.busdaycalendar, only used when custom frequency strings are passed.inclusive{“both”, “neither”, “left”, “right”}, default “both”
Include boundaries; Whether to set each bound as closed or open.New in version 1.4.0.**kwargs
For compatibility. Has no effect on the result.Returns:
DatetimeIndex
65-2、参数

65-2-1、start(可选,默认值为None)起始时间,字符串或datetime-like对象。可以为空,如果指定了end和periods。

65-2-2、end(可选,默认值为None)结束时间,字符串或datetime-like对象。可以为空,如果指定了start和periods。

65-2-3、periods(可选,默认值为None)生成的时间点数,如果指定了start或end其中之一,此参数必需。

65-2-4、freq(可选,默认值为'B')频率字符串,常见的频率字符串包括'B'(工作日)、'C'(自定义工作日),还可以用pd.offsets对象定义复杂频率。

65-2-5、tz(可选,默认值为None)时区字符串或tzinfo对象。

65-2-6、normalize(可选,默认值为True)将时间标准化到午夜时间。

65-2-7、name(可选,默认值为None)生成的DatetimeIndex的名称。

65-2-8、weekmask(可选,默认值为None)指定一周中哪些天是工作日,可以是一个字符串,比如'Mon Tue Wed Thu Fri',默认值取决于freq。

65-2-9、holidays(可选,默认值为None)指定节假日,作为一个日期列表,用于排除这些日期。

65-2-10、inclusive(可选,默认值为'both')包括或排除起始和结束点,可以是'both'、'neither'、'left'或'right'。

65-2-11、**kwargs(可选)其他关键字参数,这些参数将被传递给DateOffset构造函数(如果freq是一个DateOffset对象或可以从字符串解析为DateOffset对象)。

65-3、功能

        用于生成工作日(business days)日期范围的一个函数,该函数专为处理财务、经济等需要排除周末和节假日的数据集而设计。

65-4、返回值

        返回一个Pandas DatetimeIndex对象,该对象包含了根据指定参数生成的日期范围,这些日期都是工作日,除非在holidays参数中明确指定了某些日期为非工作日。  

65-5、说明

        该函数为处理时间序列数据中的工作日提供了极大的便利,使得数据分析师和科学家能够更专注于数据的分析和解释,而无需担心日期的计算和筛选问题。

65-6、用法
65-6-1、数据准备
65-6-2、代码示例
# 65、pandas.bdate_range函数
import pandas as pd
# 生成从2024年1月1日到2024年12月31日的工作日日期范围
bdate_range = pd.bdate_range(start='2024-01-01', end='2024-12-31')
print(bdate_range)
65-6-3、结果输出
# 65、pandas.bdate_range函数
# DatetimeIndex(['2024-01-01', '2024-01-02', '2024-01-03', '2024-01-04',
#                '2024-01-05', '2024-01-08', '2024-01-09', '2024-01-10',
#                '2024-01-11', '2024-01-12',
#                ...
#                '2024-12-18', '2024-12-19', '2024-12-20', '2024-12-23',
#                '2024-12-24', '2024-12-25', '2024-12-26', '2024-12-27',
#                '2024-12-30', '2024-12-31'],
#               dtype='datetime64[ns]', length=262, freq='B')
66、pandas.period_range函数
66-1、语法
# 66、pandas.period_range函数
pandas.period_range(start=None, end=None, periods=None, freq=None, name=None)
Return a fixed frequency PeriodIndex.The day (calendar) is the default frequency.Parameters:
start
str, datetime, date, pandas.Timestamp, or period-like, default None
Left bound for generating periods.end
str, datetime, date, pandas.Timestamp, or period-like, default None
Right bound for generating periods.periods
int, default None
Number of periods to generate.freq
str or DateOffset, optional
Frequency alias. By default the freq is taken from start or end if those are Period objects. Otherwise, the default is "D" for daily frequency.name
str, default None
Name of the resulting PeriodIndex.Returns:
PeriodIndex
66-2、参数

66-2-1、start(可选,默认值为None)str或Period对象,生成周期范围的起始点,如果指定了end和periods,则start是必需的。它应该是一个可以解析为周期的字符串(如'2023Q1'表示2023年的第一季度)或一个Period对象。

66-2-2、end(可选,默认值为None)str或Period对象,生成周期范围的结束点,如果指定了start和periods,则end是可选的。同样,它应该是一个可以解析为周期的字符串或一个Period对象。

66-2-3、periods(可选,默认值为None)int要生成的周期数,如果指定了start和end,则periods是可选的。

66-2-4、freq(可选,默认值为None)str或DateOffset对象,两个相邻周期之间的频率。常见的频率有 'Y'(年)、'Q'(季度)、'M'(月)、'D'(日)等,如果不指定,Pandas会尝试根据start和end(如果提供了)自动推断出频率。

66-2-5、name(可选,默认值为None)str返回的PeriodIndex的名称。

66-3、功能

        用于生成固定频率的PeriodIndex(周期索引)的一个功能强大的工具,该函数通过指定的起始点、结束点、周期数以及频率等参数,生成一个包含多个周期的索引序列,这些周期可以是年、季度、月、日等不同的时间单位。

66-4、返回值

        返回一个Pandas PeriodIndex对象,该对象包含了根据指定参数生成的周期范围。

66-5、说明

        无

66-6、用法
66-6-1、数据准备
66-6-2、代码示例
# 66、pandas.period_range函数
import pandas as pd
# 生成从2024年第一季度到2024年第四季度的季度周期索引
q_range = pd.period_range(start='2024Q1', end='2024Q4', freq='Q')
print(q_range, end='\n\n')
# 访问第一个周期
first_quarter = q_range[0]
print(first_quarter, end='\n\n')
print(q_range.freq)
66-6-3、结果输出 
# 66、pandas.period_range函数
# PeriodIndex(['2024Q1', '2024Q2', '2024Q3', '2024Q4'], dtype='period[Q-DEC]')
# 
# 2024Q1
# 
# <QuarterEnd: startingMonth=12>
67、pandas.timedelta_range函数
67-1、语法
# 67、pandas.timedelta_range函数
pandas.timedelta_range(start=None, end=None, periods=None, freq=None, name=None, closed=None, *, unit=None)
Return a fixed frequency TimedeltaIndex with day as the default.Parameters:
startstr or timedelta-like, default None
Left bound for generating timedeltas.endstr or timedelta-like, default None
Right bound for generating timedeltas.periodsint, default None
Number of periods to generate.freqstr, Timedelta, datetime.timedelta, or DateOffset, default ‘D’
Frequency strings can have multiples, e.g. ‘5h’.namestr, default None
Name of the resulting TimedeltaIndex.closedstr, default None
Make the interval closed with respect to the given frequency to the ‘left’, ‘right’, or both sides (None).unitstr, default None
Specify the desired resolution of the result.New in version 2.0.0.Returns:
TimedeltaIndex
67-2、参数

67-2-1、start(可选,默认值为None)str或Timedelta,生成时间差范围的起始点,可以是表示时间差的字符串(如'1 days')或Timedelta对象,如果未指定,则必须指定periods参数。

67-2-2、end(可选,默认值为None)str或Timedelta,生成时间差范围的结束点,与start参数类似,可以是字符串或Timedelta对象,如果指定了end,则生成的时间差范围将包括这个结束点(取决于closed参数的值)。

67-2-3、periods(可选,默认值为None)int,时间差的数量,如果指定了periods,则生成的时间差范围将包含指定数量的等间隔时间差;如果同时指定了start和end,则periods可以被忽略或用于计算频率。

67-2-4、freq(可选,默认值为None)str或DateOffset,时间差的频率,可以是如'D'(天)、'H'(小时)、'T'(分钟)等频率字符串,或者是DateOffset对象。如果未指定,则频率将根据start、end和periods 参数自动计算(如果可能的话)。

67-2-5、name(可选,默认值为None)str,返回的TimedeltaIndex的名称。

67-2-6、closed(可选,默认值为None){'left', 'right'},指示区间是“左闭右开”('left')还是“左开右闭”('right'),这仅在同时指定了start和end时有效。默认是 'right',即区间包括结束点但不包括起始点(在逻辑上,因为时间差通常从0开始计数)。

67-2-7、unit(可选,默认值为None)从Pandas 1.1.0开始不推荐使用,因为freq参数已经足够灵活来指定时间差的单位,如果同时指定了freq和unit,freq将优先。

67-3、功能

        用于生成时间序列的时间差(timedelta)范围的一个函数,该函数允许你根据起始时间、结束时间、时间差的数量、时间频率等参数来创建一个TimedeltaIndex,这个索引包含了等间隔的时间差。

67-4、返回值

        返回值是一个Pandas TimedeltaIndex对象,该对象具有以下特点:

67-4-1、类型:TimedeltaIndex是Pandas中专门用于存储时间差索引的类型,它提供了丰富的日期时间操作功能。
67-4-2、内容:返回的TimedeltaIndex对象包含了根据指定参数生成的等间隔时间差序列,这些时间差按照指定的频率排列,并且每个时间差都对应着一个具体的时间长度(如1天、2小时等)。
67-4-3、属性:TimedeltaIndex对象具有多个属性,如dtype(数据类型,表示时间差的纳秒表示)、freq(频率,表示时间差的生成频率)、inferred_freq(推断的频率,当没有明确指定freq时,Pandas 会尝试推断时间差序列的频率)等,这些属性描述了时间差索引的基本信息。
67-4-4、操作:TimedeltaIndex对象支持多种操作,如索引、切片、算术运算(如加法、减法)等,这些操作使得用户能够方便地对时间差索引进行进一步的处理和分析。

67-5、说明

        无

67-6、用法
67-6-1、数据准备
67-6-2、代码示例
# 67、pandas.timedelta_range函数
# 67-1、使用start和periods
import pandas as pd
# 从0天0小时开始,生成包含5个时间差的序列,每个时间差为1天
td_range = pd.timedelta_range(start='0 days', periods=5, freq='D')
print(td_range, end='\n\n')# 67-2、使用start、end和freq
import pandas as pd
# 从1小时开始,到10小时结束,每小时一个时间差
td_range = pd.timedelta_range(start='1 hours', end='10 hours', freq='H')
print(td_range, end='\n\n')# 67-3、使用end和periods
import pandas as pd
# 从0天开始,到3天结束,包含4个时间差(注意:这里不直接指定freq,但Pandas会尝试推断)
td_range = pd.timedelta_range(end='3 days', periods=4)
print(td_range, end='\n\n')# 67-4、指定name参数
import pandas as pd
# 生成时间差序列,并指定索引名称
td_range = pd.timedelta_range(start='0 days', periods=5, freq='D', name='Time_Differences')
print(td_range)
67-6-3、结果输出
# 67、pandas.timedelta_range函数
# 67-1、使用start和periods
# TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', freq='D')# 67-2、使用start、end和freq
# TimedeltaIndex(['0 days 01:00:00', '0 days 02:00:00', '0 days 03:00:00',
#                 '0 days 04:00:00', '0 days 05:00:00', '0 days 06:00:00',
#                 '0 days 07:00:00', '0 days 08:00:00', '0 days 09:00:00',
#                 '0 days 10:00:00'],
#                dtype='timedelta64[ns]', freq='h')# 67-3、使用end和periods
# TimedeltaIndex(['0 days', '1 days', '2 days', '3 days'], dtype='timedelta64[ns]', freq='D')# 67-4、指定name参数
# TimedeltaIndex(['0 days', '1 days', '2 days', '3 days', '4 days'], dtype='timedelta64[ns]', name='Time_Differences', freq='D')

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • C++ --> 类和对象(二)
  • Mysql:解决CPU飙升至100%问题的系统诊断与优化策略
  • 深度学习中激活函数的演变与应用:一个综述
  • 解决RuntimeError: Couldn‘t load custom C++ ops. This can happen if your PyTorch
  • [BJDCTF2020]EzPHP1
  • React@16.x(56)Redux@4.x(5)- 实现 createStore
  • 基于IDEA的Lombok插件安装及简单使用
  • ARM 虚拟机FVP环境搭建
  • 2024-07-15 Unity插件 Odin Inspector4 —— Collection Attributes
  • 电脑的D盘E盘F盘突然消失了 电脑只剩下C盘了其他盘怎么恢复
  • C#中简单Socket编程
  • 中国电子学会青少年编程等级考试真题下载
  • Linux FFmpeg安装教程
  • 探索深度学习与Transformer架构的最新进展
  • STM32F103RC使用HAL库配置USART进行数据收发
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • CentOS7简单部署NFS
  • Median of Two Sorted Arrays
  • npx命令介绍
  • Quartz初级教程
  • supervisor 永不挂掉的进程 安装以及使用
  • vue:响应原理
  • vue的全局变量和全局拦截请求器
  • 笨办法学C 练习34:动态数组
  • 从输入URL到页面加载发生了什么
  • 机器人定位导航技术 激光SLAM与视觉SLAM谁更胜一筹?
  • 基于Android乐音识别(2)
  • 每天一个设计模式之命令模式
  • 前端相关框架总和
  • 实战:基于Spring Boot快速开发RESTful风格API接口
  • 微服务入门【系列视频课程】
  • 验证码识别技术——15分钟带你突破各种复杂不定长验证码
  • AI又要和人类“对打”,Deepmind宣布《星战Ⅱ》即将开始 ...
  • ###STL(标准模板库)
  • #单片机(TB6600驱动42步进电机)
  • $emit传递多个参数_PPC和MIPS指令集下二进制代码中函数参数个数的识别方法
  • $forceUpdate()函数
  • (2022版)一套教程搞定k8s安装到实战 | RBAC
  • (vue)el-cascader级联选择器按勾选的顺序传值,摆脱层级约束
  • (翻译)Entity Framework技巧系列之七 - Tip 26 – 28
  • (附源码)php新闻发布平台 毕业设计 141646
  • (三) diretfbrc详解
  • (原創) 如何將struct塞進vector? (C/C++) (STL)
  • .NET 3.0 Framework已经被添加到WindowUpdate
  • .Net 4.0并行库实用性演练
  • .Net Core缓存组件(MemoryCache)源码解析
  • .NET MAUI Sqlite程序应用-数据库配置(一)
  • .net redis定时_一场由fork引发的超时,让我们重新探讨了Redis的抖动问题
  • .NET/C# 编译期能确定的字符串会在字符串暂存池中不会被 GC 垃圾回收掉
  • .NET/C# 阻止屏幕关闭,阻止系统进入睡眠状态
  • .NetCore 如何动态路由
  • .Net接口调试与案例
  • .NET企业级应用架构设计系列之开场白
  • .net使用excel的cells对象没有value方法——学习.net的Excel工作表问题
  • .net专家(高海东的专栏)