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

如何按日期时间分组DataFrame并计算各列的分钟均值?

按分钟分组计算DataFrame各列均值的实现方法

要实现按分钟对DataFrame分组并计算各列均值,最终每分钟仅保留一条记录,可以用pandas的时间序列处理功能,以下是两种常用的实现方式:

方法一:使用resample重采样(推荐用于时间序列数据)

如果你的日期时间列是标准的时间格式,先确保它被转换为datetime类型,然后通过重采样功能按分钟聚合:

import pandas as pd

# 假设你的DataFrame名为df,日期时间列名为'timestamp'
# 1. 将日期时间列转换为datetime类型
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 2. 将日期时间列设置为索引(resample需要基于时间索引)
df = df.set_index('timestamp')

# 3. 按分钟('T'代表分钟)重采样,计算所有列的均值
df_minute_mean = df.resample('T').mean()

# 如果需要将时间索引转回普通列
df_minute_mean = df_minute_mean.reset_index()

方法二:使用groupby配合dt.floor

如果不想修改索引,可以通过提取分钟级别的时间戳作为分组键,再聚合计算均值:

import pandas as pd

# 1. 转换日期时间列类型
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 2. 生成分钟级别的分组键(将时间戳向下取整到分钟)
df['minute_group'] = df['timestamp'].dt.floor('min')

# 3. 按分钟分组,计算各列均值
df_minute_mean = df.groupby('minute_group').mean().reset_index()

# 可选:删除临时分组列
df_minute_mean = df_minute_mean.drop(columns=['minute_group'])

两种方法最终都会得到每分钟一条记录,每条记录对应原数据该分钟内各列的平均值。如果某一分钟没有数据,resample会生成NaN值(可以通过添加dropna=True参数移除这些行),而groupby则不会包含该分钟的记录。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 17:48:29