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

目录

一、用法精讲

1081、pandas.tseries.offsets.DateOffset类

1081-1、语法

1081-2、参数

1081-3、功能

1081-4、返回值

1081-5、说明

1081-6、用法

1081-6-1、数据准备

1081-6-2、代码示例

1081-6-3、结果输出

1082、pandas.tseries.offsets.DateOffset.freqstr属性

1082-1、语法

1082-2、参数

1082-3、功能

1082-4、返回值

1082-5、说明

1082-6、用法

1082-6-1、数据准备

1082-6-2、代码示例

1082-6-3、结果输出

1083、pandas.tseries.offsets.DateOffset.kwds属性

1083-1、语法

1083-2、参数

1083-3、功能

1083-4、返回值

1083-5、说明

1083-6、用法

1083-6-1、数据准备

1083-6-2、代码示例

1083-6-3、结果输出

1084、pandas.tseries.offsets.DateOffset.name属性

1084-1、语法

1084-2、参数

1084-3、功能

1084-4、返回值

1084-5、说明

1084-6、用法

1084-6-1、数据准备

1084-6-2、代码示例

1084-6-3、结果输出

1085、pandas.tseries.offsets.DateOffset.normalize属性

1085-1、语法

1085-2、参数

1085-3、功能

1085-4、返回值

1085-5、说明

1085-6、用法

1085-6-1、数据准备

1085-6-2、代码示例

1085-6-3、结果输出

二、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、用法精讲

1081、pandas.tseries.offsets.DateOffset
1081-1、语法
# 1081、pandas.tseries.offsets.DateOffset类
class pandas.tseries.offsets.DateOffset
Standard kind of date increment used for a date range.

Works exactly like the keyword argument form of relativedelta. Note that the positional argument form of relativedelata is not supported. Use of the keyword n is discouraged– you would be better off specifying n in the keywords you use, but regardless it is there for you. n is needed for DateOffset subclasses.

DateOffset works as follows. Each offset specify a set of dates that conform to the DateOffset. For example, Bday defines this set to be the set of dates that are weekdays (M-F). To test if a date is in the set of a DateOffset dateOffset we can use the is_on_offset method: dateOffset.is_on_offset(date).

If a date is not on a valid date, the rollback and rollforward methods can be used to roll the date to the nearest valid date before/after the date.

DateOffsets can be created to move dates forward a given number of valid dates. For example, Bday(2) can be added to a date to move it two business days forward. If the date does not start on a valid date, first it is moved to a valid date. Thus pseudo code is:

def __add__(date):
  date = rollback(date) # does nothing if date is valid
  return date + <n number of periods>
When a date offset is created for a negative number of periods, the date is first rolled forward. The pseudo code is:

def __add__(date):
  date = rollforward(date) # does nothing if date is valid
  return date + <n number of periods>
Zero presents a problem. Should it roll forward or back? We arbitrarily have it rollforward:

date + BDay(0) == BDay.rollforward(date)

Since 0 is a bit weird, we suggest avoiding its use.

Besides, adding a DateOffsets specified by the singular form of the date component can be used to replace certain component of the timestamp.

Parameters:
nint, default 1
The number of time periods the offset represents. If specified without a temporal pattern, defaults to n days.

normalizebool, default False
Whether to round the result of a DateOffset addition down to the previous midnight.

weekdayint {0, 1, …, 6}, default 0
A specific integer for the day of the week.

0 is Monday

1 is Tuesday

2 is Wednesday

3 is Thursday

4 is Friday

5 is Saturday

6 is Sunday

Instead Weekday type from dateutil.relativedelta can be used.

MO is Monday

TU is Tuesday

WE is Wednesday

TH is Thursday

FR is Friday

SA is Saturday

SU is Sunday.

**kwds
Temporal parameter that add to or replace the offset value.

Parameters that add to the offset (like Timedelta):

years

months

weeks

days

hours

minutes

seconds

milliseconds

microseconds

nanoseconds

Parameters that replace the offset value:

year

month

day

weekday

hour

minute

second

microsecond

nanosecond.
1081-2、参数

        无

1081-3、功能

        可以与pd.Timestamp或pd.DateTimeIndex对象一起使用,以便对日期进行偏移,通过创建一个DateOffset对象并将其添加到现有的日期时间对象,可以实现日期的准确计算。

1081-4、返回值

        本身并不直接返回值;相反,当你将其应用于一个日期时间对象时,它返回一个新的日期时间对象。

1081-5、说明

        无

1081-6、用法
1081-6-1、数据准备
1081-6-2、代码示例
# 1081、pandas.tseries.offsets.DateOffset类
import pandas as pd
# 创建一个时间戳
ts = pd.Timestamp('2024-11-19')
# 创建一个DateOffset对象
offset = pd.DateOffset(days=10)
# 应用偏移
new_ts = ts + offset
print(new_ts)  
1081-6-3、结果输出
# 1081、pandas.tseries.offsets.DateOffset类  
# 2024-11-29 00:00:00
1082、pandas.tseries.offsets.DateOffset.freqstr属性
1082-1、语法
# 1082、pandas.tseries.offsets.DateOffset.freqstr属性
pandas.tseries.offsets.DateOffset.freqstr
Return a string representing the frequency.
1082-2、参数

        无

1082-3、功能

        用于指定时间偏移的频率,通过设置这个参数,用户可以更灵活地创建各种类型的时间偏移。例如,可以指定按年、按月、按周、按日等频率进行偏移。

1082-4、返回值

        当使用freqstr创建DateOffset对象时,可以导出该偏移对象,之后可以用来对Timestamp或DatetimeIndex进行加减运算,返回值是对应频率的DateOffset实例,它可以应用于时间序列数据,进行时间的增减。

1082-5、说明

        无

1082-6、用法
1082-6-1、数据准备
1082-6-2、代码示例
# 1082、pandas.tseries.offsets.DateOffset.freqstr属性
import pandas as pd
# 创建一个DateOffset对象,偏移量为2个月
offset = pd.DateOffset(months=2)
# 使用该偏移量加到一个时间戳上
date = pd.Timestamp('2024-11-19')
new_date = date + offset
print(new_date)  
1082-6-3、结果输出
# 1082、pandas.tseries.offsets.DateOffset.freqstr属性 
# 2025-01-19 00:00:00
1083、pandas.tseries.offsets.DateOffset.kwds属性
1083-1、语法
# 1083、pandas.tseries.offsets.DateOffset.kwds属性
pandas.tseries.offsets.DateOffset.kwds
Return a dict of extra parameters for the offset.
1083-2、参数

        无

1083-3、功能

        提供创建DateOffset实例时所用的所有关键字参数(即时间偏移量)的字典,该字典包含了与时间偏移相关的具体单位及其对应的值,使得用户可以查看或使用这些已定义的参数。

1083-4、返回值

        返回一个字典,其中每个键(字符串)代表时间单位,如'years'、'months'、'days'、'hours'、'minutes'等,对应的值(整数)是针对这些时间单位的偏移量。

1083-5、说明

        无

1083-6、用法
1083-6-1、数据准备
1083-6-2、代码示例
# 1083、pandas.tseries.offsets.DateOffset.kwds属性
import pandas as pd
# 创建DateOffset对象
offset = pd.DateOffset(years=1, months=2, days=3)
# 获取kwds属性
kwargs = offset.kwds
print(kwargs)  
1083-6-3、结果输出
# 1083、pandas.tseries.offsets.DateOffset.kwds属性 
# {'days': 3, 'months': 2, 'years': 1}
1084、pandas.tseries.offsets.DateOffset.name属性
1084-1、语法
# 1084、pandas.tseries.offsets.DateOffset.name属性
pandas.tseries.offsets.DateOffset.name
Return a string representing the base frequency.
1084-2、参数

        无

1084-3、功能

        用于获取或设置DateOffset实例的名称,名称通常是一个字符串,用于标识该时间偏移的类型或作用。

1084-4、返回值

        返回DateOffset实例的名称,如果没有特别设置名称,则可能返回None。

1084-5、说明

        无

1084-6、用法
1084-6-1、数据准备
1084-6-2、代码示例
# 1084、pandas.tseries.offsets.DateOffset.name属性
import pandas as pd
class CustomDateOffset:
    def __init__(self, years=0, months=0, days=0, name=""):
        self.offset = pd.DateOffset(years=years, months=months, days=days)
        self.name = name
# 创建CustomDateOffset对象
custom_offset = CustomDateOffset(years=1, months=2, days=3, name='One Year, Two Months, Three Days')
# 获取当前的名称
current_name = custom_offset.name
print(current_name)  
# 设置新的名称
custom_offset.name = 'Updated Name'
print(custom_offset.name)  
1084-6-3、结果输出
# 1084、pandas.tseries.offsets.DateOffset.name属性
# One Year, Two Months, Three Days
# Updated Name
1085、pandas.tseries.offsets.DateOffset.normalize属性
1085-1、语法
# 1085、pandas.tseries.offsets.DateOffset.normalize属性
pandas.tseries.offsets.DateOffset.normalize
1085-2、参数

        无

1085-3、功能

1085-3-1、标准化:当normalize=True时,在应用偏移量后,结果时间戳的时间部分会被标准化为午夜(即00:00:00),意味着无论原始时间戳的具体时间如何,在添加偏移后,它们的时间部分都会被清零,以便专注于日期变化。

1085-3-2、维持原时间:当normalize=False(默认行为)时,在应用偏移量后,原始时间戳的时间部分会被保留并应用于结果中,对于需要保持时间精度的操作非常有用。

1085-4、返回值

1085-4-1、标准化偏移:日期加了一天,且时间部分归零,表示结果被标准化到当天的午夜时刻。

1085-4-2、非标准化偏移:日期加了一天,时间部分保持不变。

1085-5、说明

        无

1085-6、用法
1085-6-1、数据准备
1085-6-2、代码示例
# 1085、pandas.tseries.offsets.DateOffset.normalize属性
import pandas as pd
# 创建一个带时间的时间戳
timestamp = pd.Timestamp('2024-11-19 21:56:45')
# 创建一个DateOffset对象,并启用normalize
offset = pd.DateOffset(days=1, normalize=True)
# 应用偏移
normalized_date = timestamp + offset
print(f"Original timestamp: {timestamp}")
print(f"Normalized timestamp: {normalized_date}")
1085-6-3、结果输出
# 1085、pandas.tseries.offsets.DateOffset.normalize属性
# Original timestamp: 2024-11-19 21:56:45
# Normalized timestamp: 2024-11-20 00:00:00

二、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

神奇夜光杯

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值