重采样为每日或每月数据
将时间汇总到更大的时间区间
重采样为每日或每月数据 是 CoddyKit 上的免费 Data Science Academy 课时。 这是第 3 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Data Science Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Data Science Academy 课程共包含 4 节课。
细节太多,难以看清
每秒或每分钟的数据通常比较嘈杂。很多时候,您真正需要的是每天或每月的总量。重采样会将精细的时间戳归入更大的时间区间。📊
先建立日期时间索引
重采样需要基于时间进行。因此,第一步是使用 set_index 将日期时间列设为索引。
df = df.set_index("date")认识 resample
resample 方法按照时间规则对各行分组,与 groupby 很相似,只不过处理的是日期。然后,您可以选择如何合并每个时间区间中的数据。
df.resample("D") # group by day每日总量
按天处理时使用规则 "D",然后求和。这样就能将许多时间戳汇总为每天一个清晰的数值。
daily = df.resample("D")["sales"].sum()每月汇总
将规则改为表示月末的 "ME",就能得到每月一行的数据。模式相同,只是时间区间更大。
monthly = df.resample("ME")["sales"].sum()规则非常灵活
频率字符串决定所有操作:"W" 表示每周,"h" 表示每小时,"YE" 表示年末。只需改变一个字母,您查看数据的方式就会完全不同。
df.resample("W")["sales"].sum() # weekly选择聚合方式
求和并不是唯一的选择。换用 mean、最大值或计数,就能从相同的时间区间中回答不同的问题。
df.resample("D")["temp"].mean()一次获取多个统计量
向 agg 传入一个列表,即可在一张整洁的表中获取每个时间区间的多个汇总结果。
df.resample("ME").agg(["sum", "mean"])降采样与升采样
转向更粗的时间区间称为降采样。转向更细的区间,例如将每日数据转换为每小时数据,则称为升采样,并会产生需要填充的空缺位置。
df.resample("h").asfreq() # upsample填充新产生的空缺
进行升采样时,新行一开始是空的。使用 ffill,即可将最后一个已知值向前填入这些空缺。
df.resample("h").ffill()平滑数据后再绘图
重采样后的序列非常适合绘图,因为噪声已经消失。每月折线图能够展现原始数据流无法体现的趋势。
monthly.plot()快速检查
您有按分钟记录的数据,但希望每天得到一个平均值。
回顾:重塑时间数据
借助日期时间索引,您使用 resample 将数据汇总到每天、每周或每月,选择了聚合方式,并使用 ffill 处理了升采样产生的空缺。⏳
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「重采样为每日或每月数据」课时是免费的吗?
是的 — 「重采样为每日或每月数据」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Data Science Academy 课程的其余内容,请升级到 CoddyKit PRO。 Data Science Academy 课程共包含 4 节课。
「重采样为每日或每月数据」这节课中我会学到什么?
将时间汇总到更大的时间区间 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 Data Science Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 Data Science Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 3 节课,共 4 节。
「重采样为每日或每月数据」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 Data Science Academy 课中编写并运行代码吗?
能。每节 Data Science Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。
此课程中的所有课时
- 将字符串解析为日期时间
- 提取年份、月份和星期几
- 重采样为每日或每月数据
- 时区和日期范围