Python Pandas – 返回应用于给定工作日对象的规则代码

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库中的数据清理和转换技术。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程