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

处理带时间列的Pandas Dataframe:去重间隔1天内数据并生成标签列

下面是可直接运行的实现方案,针对大型DataFrame用的都是向量化操作,性能足够:

步骤1:导入依赖&转换时间列格式

首先确保时间列是Pandas的datetime类型,才能正确计算日期间隔:

import pandas as pd

# 替换为你实际的时间列名,这里对应示例的'Time Column'
df['Time Column'] = pd.to_datetime(df['Time Column'])

步骤2:去除重复日期

按需求保留每组重复日期的第一条记录:

# 按时间列去重,保留第一个出现的值
df = df.drop_duplicates(subset='Time Column', keep='first').reset_index(drop=True)

步骤3:筛选符合间隔要求的记录

判断当前行和上一行的日期间隔,仅保留间隔超过1天的记录,完全匹配示例中23日留、24日删的规则:

# 计算当前行与上一行的时间差,单位为天
day_diff = df['Time Column'].diff().dt.days
# 生成筛选掩码:第一行默认保留,后续行仅保留和上一行间隔超过1天的
keep_mask = (day_diff > 1) | day_diff.isna()
# 筛选得到目标数据
df_result = df[keep_mask].reset_index(drop=True)

步骤4:新增Label列

按时间顺序生成L+递增序号的标签:

df_result['Label'] = 'L' + (df_result.index + 1).astype(str)

最终输出的df_result就是符合要求的结果,和你给出的示例完全匹配。如果时间列带时分秒需要按自然日判断间隔,仅需要把时间差计算逻辑改成df['Time Column'].dt.date.diff().dt.days即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 18:06:01