Pandas是一个Python编程语言的数据分析库,其中包含了许多用于数据处理和统计的工具。在Pandas中,我们可以使用rolling()函数来进行滚动(滑动)操作,常见的应用包括按时间间隔的滑动平均值、滑动标准差等。
下面是按时间间隔的滚动平均值具体攻略:
首先,我们导入Pandas库:
import pandas as pd
接下来,我们创建一个示例数据集,其中包含日期和值两列:
data = {'日期':['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10'],
'值':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
df['日期'] = pd.to_datetime(df['日期'])
df.set_index('日期', inplace=True)
对数据进行分析之前,需要将日期列转换成日期型并设置日期列为索引。
然后,我们使用rolling()函数来计算滚动平均值。例如,下面是按3天时间间隔的滚动平均值:
df['滚动平均值'] = df['值'].rolling('3D').mean()
在rolling()函数中,后面的参数指定了滚动窗口大小,此处指定为3天时间间隔。mean()函数用于计算平均值。执行上述代码之后,数据集中新增了一列“滚动平均值”,包含了每个时间点的3天滚动平均值结果。
这里还可以指定别的时间间隔,比如按5天时间间隔的滚动平均值:
df['滚动平均值'] = df['值'].rolling('5D').mean()
值得注意的是,rolling()函数也可以用于其他类型的数据滚动处理,例如可以按值数目间隔进行滚动:
df['滚动平均值'] = df['值'].rolling(3).mean()
这里的参数3表示滚动窗口大小,表示每次计算3个数值的平均值。
完整的示例代码如下:
import pandas as pd
# 创建示例数据集
data = {'日期':['2020-01-01', '2020-01-02', '2020-01-03', '2020-01-04', '2020-01-05', '2020-01-06', '2020-01-07', '2020-01-08', '2020-01-09', '2020-01-10'],
'值':[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]}
df = pd.DataFrame(data)
# 将日期列转换成日期型并设置日期列为索引
df['日期'] = pd.to_datetime(df['日期'])
df.set_index('日期', inplace=True)
# 计算滚动平均值
df['滚动平均值(3天)'] = df['值'].rolling('3D').mean()
df['滚动平均值(5天)'] = df['值'].rolling('5D').mean()
df['滚动平均值(3个数)'] = df['值'].rolling(3).mean()
print(df)
输出结果为:
值 滚动平均值(3天) 滚动平均值(5天) 滚动平均值(3个数)
日期
2020-01-01 1 1.0 1.0 NaN
2020-01-02 2 1.5 1.5 NaN
2020-01-03 3 2.0 2.0 2.0
2020-01-04 4 3.0 2.5 3.0
2020-01-05 5 4.0 3.0 4.0
2020-01-06 6 5.0 4.0 5.0
2020-01-07 7 6.0 5.0 6.0
2020-01-08 8 7.0 6.0 7.0
2020-01-09 9 8.0 7.0 8.0
2020-01-10 10 9.0 8.0 9.0
可以看到,经过滚动平均值处理之后,数据集中新增了三列“滚动平均值”,分别是按3天时间间隔、按5天时间间隔、按3个数计算的滚动平均值。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Pandas 按时间间隔的滚动平均值 - Python技术站