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

长格式pandas dataframe多变量重采样保留各变量日均值方法问询

你直接对全表做重采样时没有区分不同变量的数值,把speed和distance的数值混在一起计算了平均值,所以得不到分变量的计算结果。

可行解法

核心思路是先按变量分组,再对每个分组单独做重采样计算,全程保持长表结构,不需要转宽格式,适配不同变量时间区间、采样频率不一致的场景。

推荐代码(性能更优)

import pandas as pd
import numpy as np

# 原有生成示例数据的代码无需修改
dti = pd.date_range('2015-01-01', '2015-12-31', freq='15min')
df = pd.DataFrame(index = dti)
df['speed'] = np.random.randint(low=0, high=60, size=len(df.index))
df['distance'] = df['speed'] * 0.25 
df.reset_index(inplace=True)
df2 = df.melt(id_vars = 'index')

# 修改后的分变量重采样代码
df_daily_mean = df2.groupby(
    ['variable', pd.Grouper(key='index', freq='d')]
)['value'].mean().reset_index()

# 可选:重命名列让结构更易读
df_daily_mean.rename(columns={'index': 'date', 'value': 'daily_avg_value'}, inplace=True)

结果说明

输出的df_daily_mean是长表结构,每一行对应「单个变量+单个日期」的日均值:

  • 同一日期下会分别生成speed、distance两条独立的均值记录
  • 不同变量的时间范围不重叠的部分不会强制生成空值记录,完全匹配业务数据的特性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 10:54:04