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

如何在Pandas中为升序日期新增Short/Mid/Long标记列

为排序后的DataFrame添加日期分类列

需求:已按Date列升序排序的DataFrame包含3个不同日期,需新增一列,为最近日期标记Short、中间日期标记Mid、最远日期标记Long。

原始数据集代码

import pandas as pd

data = {"product_name":["Keyboard","Mouse", "Monitor", "CPU","CPU", "Speakers"],
        "Unit_Price":[500,200, 5000.235, 10000.550, 10000.550, 250.50],
        "No_Of_Units":[5,5, 10, 20, 20, 8],
        "Available_Quantity":[5,6,10,1,3,2],
        "Date":['11-05-2021', '23-04-2021', '08-10-2021','23-04-2021', '08-10-2021','11-05-2021']
       }

df = pd.DataFrame(data)
df['Date'] = pd.to_datetime(df['Date'],  format = '%d-%m-%Y')
df = df.sort_values(by='Date')

解决方案

实现思路

  1. 提取DataFrame中唯一的升序日期(原数据已按Date排序,直接去重即可保留顺序)
  2. 建立日期与标记的对应关系:升序首项(最近日期)→Short,中间项→Mid,末项(最远日期)→Long
  3. 通过map()方法将映射关系批量应用到Date列,生成新分类列

代码实现

# 获取唯一的升序日期列表
unique_dates = df['Date'].unique()

# 构建日期-标记映射字典
date_mapping = {
    unique_dates[0]: 'Short',
    unique_dates[1]: 'Mid',
    unique_dates[2]: 'Long'
}

# 新增分类列并赋值
df['Date_Category'] = df['Date'].map(date_mapping)

# 输出结果查看
print(df)

最终效果

新增的Date_Category列会按规则标记日期:

  • 2021-04-23 → Short
  • 2021-05-11 → Mid
  • 2021-10-08 → Long

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 21:50:24