61.数据平滑

李光朱课程 2024-05-20 05:54:57
案例导入

如下数据,将第1列作为索引列,引擎为”openpyxl”。请使用窗口移动均值对数据进行平滑处理,窗口大小为3,忽略缺失值。输出平滑后的数据。用Matplotlib在同一个图中绘制平滑前后数据的折线图。添加代码注释。

日期

数据

2022/9/9

28.48237506

2022/9/10

20.15107005

2022/9/11

19.78401555

2022/9/12

28.97169722

2022/9/13

18.93442961

2022/9/14

23.80806026

2022/9/15

26.9193541

2022/9/16

24.2594189

2022/9/17

28.53842407

2022/9/18

20.20273318

2022/9/19

19.90164909

2022/9/20

30.07783514

2022/9/21

29.73427654

2022/9/22

24.40071449

2022/9/23

21.31297276

2022/9/24

17.43149197

2022/9/25

29.33716145

2022/9/26

27.91968324

2022/9/27

17.84223493

2022/9/28

18.27552569

2022/9/29

26.42066696

2022/9/30

19.96852034

2022/10/1

22.84563099

2022/10/2

32.30174629

2022/10/3

28.01832356

2022/10/4

21.22044672

2022/10/5

10.49589534

2022/10/6

22.16451549

2022/10/7

26.02853844

2022/10/8

23.57470064

文心一言提示词

打开百度“文心一言”,输入提示词:“你是pandas专家。文件路径为:D:/Samples/数据记录.xlsx。用pandas导入Excel文件中第1个工作表中的数据,将第1列作为索引列,引擎为”openpyxl”。请使用窗口移动均值对数据进行平滑处理,窗口大小为3,忽略缺失值。输出平滑后的数据。用Matplotlib在同一个图中绘制平滑前后数据的折线图。添加代码注释。”

显示结果如下:

首先,确保你已经安装了pandas、openpyxl和matplotlib库。如果还没有安装,可以使用pip进行安装:

pip install pandas openpyxl matplotlib

然后,可以使用以下Python代码来完成你的需求:

import pandas as pdimport matplotlib.pyplot as plt# 读取Excel文件中的数据,使用openpyxl作为引擎,并将第1列设置为索引file_path = 'D:/Samples/数据记录.xlsx'df = pd.read_excel(file_path, sheet_name=0, index_col=0, engine='openpyxl')# 使用rolling函数计算窗口大小为3的移动均值,并忽略缺失值df_smoothed = df.rolling(window=3, min_periods=1, center=False).mean()# 由于我们忽略了缺失值,min_periods=1允许在窗口内数据不足时也能进行计算# 默认情况下,center=False表示窗口对齐到左侧# 输出平滑后的数据print("原始数据:")print(df.head())print("\n平滑后的数据:")print(df_smoothed.head())# 绘制平滑前后数据的折线图plt.figure(figsize=(10, 6))# 绘制原始数据plt.plot(df, label='原始数据', marker='o')# 绘制平滑后的数据plt.plot(df_smoothed, label='平滑后的数据', marker='o', linestyle='--')# 设置图例plt.legend()# 设置x轴和y轴的标签plt.xlabel('索引')plt.ylabel('值')# 显示图形plt.show()

请注意,在rolling函数中,我设置了min_periods=1来确保即使在一个窗口内数据不足3个时,也能进行计算(这时实际上会计算平均值,但只基于可用的数据点)。默认情况下,center=False意味着窗口是从左边开始计算的,而不是居中。

在绘制图形时,我使用了plt.plot来分别绘制原始数据和平滑后的数据,并使用label参数为每条线添加了图例。最后,通过plt.show()来显示图形。

Python运行结果

图1.Python运行结果

图2.生成的图片

本合集使用的工具如下:

文心一言:3.5版本

Python编辑器:3.9.0

申明:以上结果皆为实际运行结果,如遇到无法运行可在评论区留言。部分数据来自网络,如有侵权请私信告知,感谢!

0 阅读:0

李光朱课程

简介:感谢大家的关注