You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas DataFrame中对分钟级时序数据去除日均值

如何在Pandas中对分钟级时间序列数据去除日均值

这事儿很简单,用Pandas的分组和transform方法就能轻松搞定,我给你一步步来演示:

1. 先构造你的原始DataFrame

首先我们把你提供的原始数据转换成Pandas DataFrame:

import pandas as pd

# 构造原始数据
data = {'Col1': [5, 15, 10, 2, 2, 5]}
datetime_index = pd.to_datetime([
    '2022-12-25 09:01:00',
    '2022-12-25 09:10:00',
    '2022-12-25 11:12:00',
    '2022-12-26 10:05:00',
    '2022-12-26 12:29:00',
    '2022-12-26 13:56:00'
])
df = pd.DataFrame(data, index=datetime_index)

2. 去除日均值的核心代码

我们需要按日期分组计算每日均值,然后让原始数据减去对应日期的均值。这里用groupby结合transform方法,能保证结果和原DataFrame的索引结构完全一致:

# 按日期分组计算日均值,再从原始列中减去该均值
df['Col1'] = df['Col1'] - df.groupby(df.index.date)['Col1'].transform('mean')

3. 验证结果

运行完上面的代码后,打印df就能得到你想要的目标数据:

Col1
2022-12-25 09:01:00  -5.0
2022-12-25 09:10:00   5.0
2022-12-25 11:12:00   0.0
2022-12-26 10:05:00  -1.0
2022-12-26 12:29:00  -1.0
2022-12-26 13:56:00   2.0

关键步骤解释

  • df.index.date:把分钟级的DatetimeIndex转换成纯日期对象(比如2022-12-25),这样就能精准按天分组
  • transform('mean'):计算每个日期分组的均值,并且返回和原DataFrame行数相同的序列,这样就能直接和原列做减法,不会打乱原有的时间索引

内容的提问来源于stack exchange,提问作者Vincent Clerc

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.28 20:32:40