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

如何在Pandas的Datetime DataFrame中添加diff_col列标记日期类别

问题:为Datetime类型DataFrame添加日期差异标记列

示例输入DataFrame

timestamp       value  ...         metric        
36 2014-04-02 17:20:00  125.098263  ...           25.098263         
14 2014-04-06 16:25:00  140.072787  ...           265.171050        
10 2014-04-11 09:00:00  127.882020  ...           393.053070        
45 2014-04-11 09:05:00  115.705719  ...           508.758789        
24 2014-04-11 09:15:00  127.261178  ...           636.019967        
17 2014-04-11 09:20:00  121.157997  ...           757.177965        
49 2014-04-11 09:25:00  120.468468  ...           877.646433        
8  2014-04-11 09:45:00  135.642696  ...           1013.289128       
33 2014-04-11 09:55:00  125.210049  ...           1138.499178       
19 2014-04-11 10:05:00  159.259713  ...           1297.758890       
52 2014-04-11 10:20:00  150.082482  ...           1447.841373

需求说明

新增diff_col列,规则如下:

  • 若该行日期(仅日期部分)与多数记录的日期不同,标记为diff
  • 否则标记为same
    示例中2014-04-02和2014-04-06的记录标记为diff,2014-04-11的所有记录标记为same。

用户尝试代码df['diff_col']=df.groupby(pd.Grouper(key = 'timestamp', freq='1D'))未得到预期结果。

解决方案

完整代码

import pandas as pd

# 确保timestamp列为datetime类型
df['timestamp'] = pd.to_datetime(df['timestamp'])

# 1. 按日期分组统计各日期的记录数
date_counts = df.groupby(df['timestamp'].dt.date).size()

# 2. 获取出现次数最多的日期(多数记录所属日期)
most_common_date = date_counts.idxmax()

# 3. 生成diff_col标记列
df['diff_col'] = df['timestamp'].dt.date.apply(lambda x: 'same' if x == most_common_date else 'diff')

代码解释

  1. 类型校验:先将timestamp转为datetime类型,避免后续日期提取操作出错。
  2. 统计日期频率:按纯日期(dt.date)分组,统计每个日期对应的记录数量。
  3. 确定多数日期:用idxmax()直接获取记录数最多的日期,也就是多数记录所属的日期。
  4. 生成标记列:对每行的日期部分做判断,匹配多数日期则标记same,否则标记diff。

预期输出

timestamp       value  ...         metric               diff_col
36 2014-04-02 17:20:00  125.098263  ...           25.098263         diff
14 2014-04-06 16:25:00  140.072787  ...           265.171050        diff
10 2014-04-11 09:00:00  127.882020  ...           393.053070        same
45 2014-04-11 09:05:00  115.705719  ...           508.758789        same
24 2014-04-11 09:15:00  127.261178  ...           636.019967        same
17 2014-04-11 09:20:00  121.157997  ...           757.177965        same
49 2014-04-11 09:25:00  120.468468  ...           877.646433        same
8  2014-04-11 09:45:00  135.642696  ...           1013.289128       same
33 2014-04-11 09:55:00  125.210049  ...           1138.499178       same
19 2014-04-11 10:05:00  159.259713  ...           1297.758890       same
52 2014-04-11 10:20:00  150.082482  ...           1447.841373       same

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 09:35:36