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

Pandas多列分组聚合疑问:按工具和日期分组计算传感器均值的实现逻辑解析

Pandas多列分组聚合疑问:按工具和日期分组计算传感器均值的实现逻辑解析

你是不是看着ChatGPT给的代码,纳闷为啥没看到直接写“按天分组”的参数?其实它是通过提取日期字段的方式间接实现按天聚合的,我给你一步步拆解清楚:

先回顾你的需求

你原本的代码是按Tool和完整的Timestamp(精确到分秒)分组,这样每个分组大概率只有一条数据,没法实现“同一天同工具的传感器均值”。而你要的是:先按工具分组,再把同一天的传感器数据归为一组算均值,核心是把“具体时间戳”变成“日期(天)”作为分组依据。

拆解ChatGPT的实现逻辑

我们一步步看代码里的“按天分组”是怎么藏起来的:

  1. 把时间字符串转成Pandas可识别的datetime类型

    df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])
    

    原始的TimeStamp是字符串格式(比如'2022-05-28 05:03:00'),Pandas没法直接对字符串做日期相关的操作,所以先转成datetime64类型,这样才能调用dt属性提取日期。

  2. 提取日期部分生成新列——这就是“按天分组”的核心

    df['Date'] = df['TimeStamp'].dt.date
    

    这里的dt.date是Pandas datetime对象的属性,它会把精确到分秒的时间戳,只保留年-月-日的部分(比如把2022-05-28 05:03:00变成2022-05-28)。这样一来,同一天的所有记录,Date字段的值完全相同,这就给“按天分组”提供了依据。

  3. 按工具+日期分组,计算均值

    result = df.groupby(['Tool', 'Date']).agg({
        'Sensor1': 'mean',
        'Sensor2': 'mean',
        'Sensor3': 'mean'
    }).reset_index()
    

    现在groupby(['Tool', 'Date'])就是先按工具分组,再按日期(天)分组,同一个工具同一天的所有传感器数据会被归为一组,然后用agg计算每个传感器的均值,reset_index是把分组用的Tool和Date从索引变回普通列,方便查看结果。

给你补充一个更简洁的写法

其实不用单独生成Date列,直接在groupby里提取日期就行,效果完全一样:

import pandas as pd

df = pd.DataFrame(
    {
        "Tool": [1 , 2 , 1 , 2, 2, 2, 1, 2, 1,2],
        "TimeStamp": ['2022-05-28 05:03:00','2022-05-29 06:07:00','2022-05-28 07:11:00','2022-05-27 11:04:00',
                      '2022-05-27 05:43:00','2022-05-25 06:07:00','2022-05-28 11:22:00','2022-05-28 02:00:00',
                      '2022-05-26 04:22:00','2022-05-28 09:55:00'],
        "Sensor1": [10,11,12,13,6,7,3,11,8,9],
        "Sensor2": [5,4,3,3,5,4,3,3,8,2],
        "Sensor3": [1,2,3,6,1,2,3,6,4,5],
    }
)

# 转成datetime后,直接在groupby里提取日期
df['TimeStamp'] = pd.to_datetime(df['TimeStamp'])
result = df.groupby(['Tool', df['TimeStamp'].dt.date]).agg(
    Sensor1_mean=('Sensor1', 'mean'),
    Sensor2_mean=('Sensor2', 'mean'),
    Sensor3_mean=('Sensor3', 'mean')
).reset_index()

print(result)

这样少了一步生成新列的操作,代码更紧凑,而且给聚合后的列起了更清晰的名字。

备注:内容来源于stack exchange,提问作者Всеволод Леонтьев

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.13 19:29:37