Python Pandas – 返回应用于给定工作日对象的规则代码
Pandas是一种在Python编程语言中使用的数据处理工具,它的主要功能是对数据进行清理、转换和分析,使数据变得更容易使用。在Pandas中,可以使用“tseries工具包”来创建一个针对日期常规的工作日对象,然后使用Pandas提供的一组函数应用于此类对象。这篇文章将介绍Pandas中用于应用于给定工作日对象的常规代码。
创建工作日对象
在Pandas中,要使用日期或时间序列进行数据分析,首先需要创建一个DatetimeIndex或PeriodIndex。在此基础之上,可以使用to_datetime()函数将日期字符串转换为日期时间戳,然后使用date_range()函数创建日期范围,该函数可以使用各种偏移量来创建。
import pandas as pd
# 创建日期范围
date_rng = pd.date_range(start='1/1/2021', end='1/10/2021', freq='B')
# 创建工作日对象
tseries = pd.Series(date_rng)
tseries
在上述示例代码中,我们使用date_range()函数创建了一个包含10个日期的日期范围,然后将该范围转化为一个Pandas系列对象。如果我们打印出该系列对象,我们将看到每个日期都是一个工作日,因为我们在date_range()函数中使用的是“B”参数。
使用规则代码
接下来,我们将介绍常用的Pandas函数,这些函数可以应用于给定的工作日对象。
resample()
resample()函数用于将时间序列数据从一个频率转换为另一个频率。通常,它用于将高频率数据降低为低频率数据。例如,将分钟数据转换为每小时的数据。
# 转化为月份的总和
tseries.resample('M').sum()
在上述代码中,我们使用resample()函数将日期范围中的日期转换为每月份的和。在这个函数中,我们传递了“M”参数,以告诉Pandas使用月份作为频率。输出如下:
2021-01-31 1512
Freq: M, dtype: int64
rolling()
rolling()函数用于执行滚动计算,这是在时间序列数据的窗口上进行计算。通常,在时间序列数据中,窗口表示数据点的一个小集合,通常是基于日期或时间序列的。rolling()函数可以应用于索引为时间序列的Pandas对象。
# 计算过去3个工作日的移动平均值
tseries.rolling(window=3).mean()
在上述代码中,我们使用rolling()函数计算了过去3个工作日的移动平均值。在这个函数中,我们传递了“window”参数,以告诉Pandas使用3个工作日作为窗口。输出如下:
2021-01-01 NaN
2021-01-04 NaN
2021-01-05 3.0
2021-01-06 4.0
2021-01-07 5.0
2021-01-08 6.0
2021-01-11 NaN
dtype: float64
shift()
shift()函数用于将时间序列数据向前或向后移动。这是一个非常有用的函数,可以用于计算以前几天的数据,或看未来几天的数据,以便在时间序列数据中进行预测。
# 将数据向前移动一天
tseries.shift(1)
在上述代码中,我们使用shift()函数将时间序列数据向前移动了一天。输出如下:
0 NaT
1 2021-01-02
2 2021-01-05
3 2021-01-06
4 2021-01-07
5 2021-01-08
6 2021-01-11
7 2021-01-12
8 2021-01-13
9 2021-01-14
dtype: object
在这个结果中,我们看到日期数据向前移动了一天。第一个数据点变成了NaT,因为数据点不能向前移动一天,因为没有前一天可以移动到。
timedelta()
timedelta()函数用于表示两个日期或时间之间的时间差。该函数可以用于计算时间差,并将结果与另一个日期或时间一起使用。
# 计算过去两个工作日的时间差
time_diff = tseries - tseries.shift(2)
time_diff
在上述代码中,我们用tseries.shift(2)获取数据两个工作日前的时间戳,然后将其从当前时间戳减去,以计算过去两个工作日之间的时间差。输出如下:
0 NaT
1 NaT
2 2 days
3 3 days
4 4 days
5 5 days
6 6 days
7 7 days
8 8 days
9 9 days
dtype: timedelta64[ns]
注意,在第一个和第二个数据点中,时间差为NaT,因为时间戳不能向前移动两个工作日。
结论
在本文中,我们介绍了Pandas中用于应用于给定工作日对象的常规代码。我们介绍了一些常用的Pandas函数,如resample()、rolling()、shift()和timedelta(),这些函数可以用于时间序列数据的分析和处理。我们的例子涵盖了各种数据处理方案,可以让您更深入地理解Pandas库中的数据清理和转换技术。
极客笔记