【问题描述】
对于给定的时间序列数据,按照指定的频率进行重采样,并按指定的函数进行聚合。
【示例7-10】
本例使用示例7-2的数据,请按天对测量数据进行重采样,聚合函数为求均值。
- ChatGPT提示词模板
新建ChatGPT会话,在提问文本框中输入下面的提示词:
prompt
你是pandas专家。文件路径为:D:/Samples/ch07/01 时间序列数据/时间序列.xlsx。用pandas导入Excel文件中第1个工作表中的数据,将第1列作为索引列,引擎为”openpyxl”。请按天对测量数据进行重采样,聚合函数为求均值。添加代码注释。
2. ChatGPT提示词模板说明
重新指定重采样的频率,比如按天、按星期、按月重采样。指定聚合函数,说明对重新指定的频率内的数据按什么函数进行计算,比如求和、求均值、求次数等。
3. 代码
- 根据提示词得到类似下面的代码:
code.python
import pandas as pd
# 读取Excel文件内容,指定第一个工作表,第一列为索引列
df = pd.read_excel('D:/Samples/ch07/01 时间序列数据/时间序列.xlsx', sheet_name=0, index_col=0, engine='openpyxl')
# 对测量数据进行重采样,聚合函数为求均值
df_dayly = df.resample('D').mean()
# 输出结果
print(df_dayly)
4. 使用代码
打开Python IDLE,新建一个脚本文件,将上面生成的代码复制进去,保存到D:/Samples/1.py。运行脚本,在IDLE Shell窗口输出
code.python
>>> == RESTART: D:/Samples/1.py =
测量值
时间
2022-03-18 5.541667
2022-03-19 4.416667
2022-03-20 6.083333
2022-03-21 4.958333
2022-03-22 7.500000
【知识点扩展】
使用Series对象或DataFrame对象的resample方法按照指定频率进行重采样,后面可以直接跟聚合函数,如本例中按天重采样,聚合函数是求均值。
code.python
df_dayly = df.resample('D').mean()