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

Pandas使用resample重采样求均值时如何保留非数值列?

解决方案

你原来的写法存在两个问题:

  1. 直接全局重采样求均值时,pandas默认只会计算数值列,非数值的col1、col2会被直接丢弃
  2. 没有区分col1、col2的分组,会把不同分组的数值混在一起计算均值,不符合你的业务逻辑

你可以结合groupby和pd.Grouper实现需求,代码如下:

import pandas as pd

# 同时按col1、col2、60分钟时间窗口分组,计算数值列均值
df_new = df.groupby(
    ['col1', 'col2', pd.Grouper(key='ds', freq='60min')]
).mean(numeric_only=True).reset_index()

# 调整列顺序,把时间列ds放在最前面,匹配你期望的输出格式
df_new = df_new[['ds', 'col1', 'col2', 'col3', 'col4']]

运行上述代码后得到的df_new就和你期望的输出完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.15 14:54:08