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

Pandas DataFrame如何仅保留每个分钟时间单位内的第一条数据

Pandas时间序列按分钟降采样(保留各分钟第一条数据)实现方案

前置准备

首先将存储时间的字符串列转换为Pandas支持的datetime类型,方便后续时间运算:

import pandas as pd

# 你给出的「天 时:分:秒.微秒」格式可被pandas自动识别,直接转换即可
df['time'] = pd.to_datetime(df['time'])

如果遇到格式识别异常,可显式指定format参数匹配你的时间格式。

核心筛选逻辑

方法1:使用drop_duplicates(代码最简,适合纯去重场景)

通过时间截断生成分钟维度的分组标识,直接去重保留每个分组第一条数据即可:

# 生成按分钟对齐的临时分组标识列
df['minute_group'] = df['time'].dt.floor('min')
# 按分组去重,保留第一条后删除临时标识列
df_result = df.drop_duplicates(subset='minute_group', keep='first').drop(columns='minute_group')

方法2:使用groupby分组(扩展性强,适合后续需额外聚合运算的场景)

直接按分钟截断后的时间分组,取每组第一条数据:

df_result = df.groupby(df['time'].dt.floor('min'), as_index=False, sort=False).first()

注意事项

  • 上述两种方法均默认保留原始数据的排序逻辑,每个分钟第一次出现的数据会被保留,完全匹配你要求的筛选规则
  • 如果原始数据未按时间正序排列,建议先执行排序再做筛选,避免取到非分钟最早的数据:
df = df.sort_values('time').reset_index(drop=True)

内容的提问来源于stack exchange,提问作者Adler Müller

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 14:54:00