Python酷库之旅-第三方库Pandas(229)
目录
一、用法精讲
1076、pandas.PeriodIndex.asfreq方法
1076-1、语法
1076-2、参数
1076-3、功能
1076-4、返回值
1076-5、说明
1076-6、用法
1076-6-1、数据准备
1076-6-2、代码示例
1076-6-3、结果输出
1077、pandas.PeriodIndex.strftime方法
1077-1、语法
1077-2、参数
1077-3、功能
1077-4、返回值
1077-5、说明
1077-6、用法
1077-6-1、数据准备
1077-6-2、代码示例
1077-6-3、结果输出
1078、pandas.PeriodIndex.to_timestamp方法
1078-1、语法
1078-2、参数
1078-3、功能
1078-4、返回值
1078-5、说明
1078-6、用法
1078-6-1、数据准备
1078-6-2、代码示例
1078-6-3、结果输出
1079、pandas.PeriodIndex.from_fields类方法
1079-1、语法
1079-2、参数
1079-3、功能
1079-4、返回值
1079-5、说明
1079-6、用法
1079-6-1、数据准备
1079-6-2、代码示例
1079-6-3、结果输出
1080、pandas.PeriodIndex.from_ordinals类方法
1080-1、语法
1080-2、参数
1080-3、功能
1080-4、返回值
1080-5、说明
1080-6、用法
1080-6-1、数据准备
1080-6-2、代码示例
1080-6-3、结果输出
二、推荐阅读
1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页
一、用法精讲
1076、pandas.PeriodIndex.asfreq方法
1076-1、语法
# 1076、pandas.PeriodIndex.asfreq方法
pandas.PeriodIndex.asfreq(freq=None, how='E')
Convert the PeriodArray to the specified frequency freq.
Equivalent to applying pandas.Period.asfreq() with the given arguments to each Period in this PeriodArray.
Parameters:
freqstr
A frequency.
howstr {‘E’, ‘S’}, default ‘E’
Whether the elements should be aligned to the end or start within pa period.
‘E’, ‘END’, or ‘FINISH’ for end,
‘S’, ‘START’, or ‘BEGIN’ for start.
January 31st (‘END’) vs. January 1st (‘START’) for example.
Returns:
PeriodArray
The transformed PeriodArray with the new frequency.
1076-2、参数
1076-2-1、freq(可选,默认值为None):字符串或None,指定目标频率。例如,可以是'D'(日),'M'(月),'Q'(季),'Y'(年)等,如果为None,则返回原始周期的频率。
1076-2-2、how(可选,默认值为'E'):{'start', 'end'},此参数定义了在转换时返回周期的开始或结束。例如:
- '
E
'表示返回每个周期的结束时间。 - '
S
'表示返回每个周期的开始时间。
1076-3、功能
用于调整周期数据的频率,通过此方法,可以将周期根据指定的频率进行转换或重新采样。
1076-4、返回值
返回一个新的PeriodIndex对象,其频率由freq参数确定。
1076-5、说明
无
1076-6、用法
1076-6-1、数据准备
无
1076-6-2、代码示例
# 1076、pandas.PeriodIndex.asfreq方法
import pandas as pd
# 创建一个PeriodIndex对象
period_index = pd.period_range(start='2024-01-01', periods=5, freq='M')
# 使用asfreq方法调整频率
# 将频率调整为每日,取每个周期的结束时间
new_period_index = period_index.asfreq(freq='D', how='E')
print(period_index)
print(new_period_index)
1076-6-3、结果输出
# 1076、pandas.PeriodIndex.asfreq方法
# PeriodIndex(['2024-01', '2024-02', '2024-03', '2024-04', '2024-05'], dtype='period[M]')
# PeriodIndex(['2024-01-31', '2024-02-29', '2024-03-31', '2024-04-30',
# '2024-05-31'],
# dtype='period[D]')
1077、pandas.PeriodIndex.strftime方法
1077-1、语法
# 1077、pandas.PeriodIndex.strftime方法
pandas.PeriodIndex.strftime(*args, **kwargs)
Convert to Index using specified date_format.
Return an Index of formatted strings specified by date_format, which supports the same string format as the python standard library. Details of the string format can be found in python string format doc.
Formats supported by the C strftime API but not by the python string format doc (such as “%R”, “%r”) are not officially supported and should be preferably replaced with their supported equivalents (such as “%H:%M”, “%I:%M:%S %p”).
Note that PeriodIndex support additional directives, detailed in Period.strftime.
Parameters:
date_format
str
Date format string (e.g. “%Y-%m-%d”).
Returns:
ndarray[object]
NumPy ndarray of formatted strings.
1077-2、参数
1077-2-1、*args(可选):其他位置参数,为后续扩展功能做预留。
1077-2-2、**kwargs(可选):其他关键字参数,为后续扩展功能做预留。
1077-3、功能
允许将周期格式化为字符串,该方法的功能类似于Python的datetime对象的strftime方法,能够根据指定的格式将周期转换为易读的日期字符串。
1077-4、返回值
返回一个字符串类型的Index,其中每个周期都被格式化为指定的字符串形式。
1077-5、说明
无
1077-6、用法
1077-6-1、数据准备
无
1077-6-2、代码示例
# 1077、pandas.PeriodIndex.strftime方法
import pandas as pd
# 创建一个PeriodIndex对象
period_index = pd.period_range(start='2024-01-01', periods=5, freq='M')
# 使用strftime方法格式化周期
formatted_dates = period_index.strftime('%Y-%m-%d')
print(period_index)
print(formatted_dates)
1077-6-3、结果输出
# 1077、pandas.PeriodIndex.strftime方法
# PeriodIndex(['2024-01', '2024-02', '2024-03', '2024-04', '2024-05'], dtype='period[M]')
# Index(['2024-01-31', '2024-02-29', '2024-03-31', '2024-04-30', '2024-05-31'], dtype='object')
1078、pandas.PeriodIndex.to_timestamp方法
1078-1、语法
# 1078、pandas.PeriodIndex.to_timestamp方法
pandas.PeriodIndex.to_timestamp(freq=None, how='start')
Cast to DatetimeArray/Index.
Parameters:
freq
str or DateOffset, optional
Target frequency. The default is ‘D’ for week or longer, ‘s’ otherwise.
how
{‘s’, ‘e’, ‘start’, ‘end’}
Whether to use the start or end of the time period being converted.
Returns:
DatetimeArray/Index
1078-2、参数
1078-2-1、freq(可选,默认值为None):字符串,指定转换后时间戳的频率。例如,可以使用'D'表示天,'M'表示月等等;如果未指定,将使用周期本身的频率。
1078-2-2、how(可选,默认值为'start'):{'start','end'},指定转换后的时间戳是周期的开始时间还是结束时间,如果how='start',则返回周期的起始时间戳;如果how='end',则返回周期的结束时间戳。
1078-3、功能
用于将PeriodIndex对象转换为Timestamp或DatetimeIndex对象,此转换可以让你更方便地进行时间序列分析,因为在某些情况下,你可能需要将周期表示的时间转换为更具体的时间戳。
1078-4、返回值
返回一个DatetimeIndex,其中的每个时间戳取决于指定的freq和how参数。
1078-5、说明
无
1078-6、用法
1078-6-1、数据准备
无
1078-6-2、代码示例
# 1078、pandas.PeriodIndex.to_timestamp方法
import pandas as pd
# 创建一个PeriodIndex对象
period_index = pd.period_range(start='2024-01-01', periods=5, freq='M')
# 将PeriodIndex转换为时间戳(周期的开始时间)
start_timestamps = period_index.to_timestamp(how='start')
# 将PeriodIndex转换为时间戳(周期的结束时间)
end_timestamps = period_index.to_timestamp(how='end')
print("Period Index:")
print(period_index)
print("\nStart Timestamps:")
print(start_timestamps)
print("\nEnd Timestamps:")
print(end_timestamps)
1078-6-3、结果输出
# 1078、pandas.PeriodIndex.to_timestamp方法
# Period Index:
# PeriodIndex(['2024-01', '2024-02', '2024-03', '2024-04', '2024-05'], dtype='period[M]')
#
# Start Timestamps:
# DatetimeIndex(['2024-01-01', '2024-02-01', '2024-03-01', '2024-04-01',
# '2024-05-01'],
# dtype='datetime64[ns]', freq='MS')
#
# End Timestamps:
# DatetimeIndex(['2024-01-31 23:59:59.999999999',
# '2024-02-29 23:59:59.999999999',
# '2024-03-31 23:59:59.999999999',
# '2024-04-30 23:59:59.999999999',
# '2024-05-31 23:59:59.999999999'],
# dtype='datetime64[ns]', freq=None)
1079、pandas.PeriodIndex.from_fields类方法
1079-1、语法
# 1079、pandas.PeriodIndex.from_fields类方法
classmethod pandas.PeriodIndex.from_fields(*, year=None, quarter=None, month=None, day=None, hour=None, minute=None, second=None, freq=None)
1079-2、参数
1079-2-1、year(可选,默认值为None):整数,表示要使用的年份。
1079-2-2、quarter(可选,默认值为None):整数,表示要使用的季度(1-4)。
1079-2-3、month(可选,默认值为None):整数,表示要使用的月份(1-12)。
1079-2-4、day(可选,默认值为None):整数,表示要使用的日期(1-31)。
1079-2-5、hour(可选,默认值为None):整数,表示要使用的小时(0-23)。
1079-2-6、minute(可选,默认值为None):整数,表示要使用的分钟(0-59)。
1079-2-7、second(可选,默认值为None):整数,表示要使用的秒(0-59)。
1079-2-8、freq(可选,默认值为None):字符串,指定周期的频率,例如'M'表示按月,'D'表示按日,'H'表示按小时等。
1079-3、功能
用于根据指定的日期和时间字段创建一个PeriodIndex对象,该方法的灵活性在于可以通过提供不同的时间字段(如年、季度、月、日、小时、分钟和秒)来构造时间段。
1079-4、返回值
返回一个PeriodIndex对象,表示根据提供的字段构建的时间周期。
1079-5、说明
无
1079-6、用法
1079-6-1、数据准备
无
1079-6-2、代码示例
# 1079、pandas.PeriodIndex.from_fields类方法
import pandas as pd
# 根据指定的字段创建单个PeriodIndex对象(日频率)
period_index = pd.PeriodIndex.from_fields(year=[2024], month=[1], day=[1], freq='D')
# 创建具有多个时间段的PeriodIndex(月频率)
periods = pd.PeriodIndex.from_fields(
year=[2024, 2024, 2025],
month=[1, 2, 3],
day=[1, 1, 1], # 注意:这里的day对于月频率来说是无关紧要的
freq='M'
)
print("Single Period (Day frequency):")
print(period_index)
print("\nMultiple Periods (Month frequency):")
print(periods)
1079-6-3、结果输出
# 1079、pandas.PeriodIndex.from_fields类方法
# Single Period (Day frequency):
# PeriodIndex(['2024-01-01'], dtype='period[D]')
#
# Multiple Periods (Month frequency):
# PeriodIndex(['2024-01', '2024-02', '2025-03'], dtype='period[M]')
1080、pandas.PeriodIndex.from_ordinals类方法
1080-1、语法
# 1080、pandas.PeriodIndex.from_ordinals类方法
classmethod pandas.PeriodIndex.from_ordinals(ordinals, *, freq, name=None)
1080-2、参数
1080-2-1、ordinals(必需):array-like,一个包含序数的数组或列表,通常表示某个时间频率的周期数,序数是从某个基准日期开始的整数,代表时间的离散点。
1080-2-2、freq(必需):str或Period,表示定义周期频率的参数,例如'D'代表日,'M'代表月,'Y'代表年等,该参数告诉PeriodIndex如何解释ordinals中的数字。
1080-2-3、name(可选,默认值为None):字符串,可以为生成的PeriodIndex指定一个名称,在构建具有标签的数据结构时可能会很有用。
1080-3、功能
用于从给定的序列化整数(称为"序数")生成一个PeriodIndex对象,该方法通常用于处理时间序列数据,特别是在需要进行频率操作时。
1080-4、返回值
返回一个PeriodIndex对象,该对象包含根据提供的序数和频率定义的时间周期,生成的PeriodIndex可以用于进一步的数据分析和操作,支持多种时间序列的运算和处理。
1080-5、说明
无
1080-6、用法
1080-6-1、数据准备
无
1080-6-2、代码示例
# 1080、pandas.PeriodIndex.from_ordinals类方法
import pandas as pd
# 定义序数,假设这些序数表示从某个基准日期开始的天数
ordinals = [0, 1, 2, 3, 4] # 对应于5天
# 定义频率为日
freq = 'D'
# 生成PeriodIndex
period_index = pd.PeriodIndex.from_ordinals(ordinals, freq=freq)
print(period_index)
1080-6-3、结果输出
# 1080、pandas.PeriodIndex.from_ordinals类方法
# PeriodIndex(['1970-01-01', '1970-01-02', '1970-01-03', '1970-01-04',
# '1970-01-05'],
# dtype='period[D]')