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

基于表格起止日期创建Year Bucket列的技术需求

生成年度分桶列的实现方案

针对你提供的表格数据,要根据起止日期生成对应的年度分桶列,以下是两种常用工具的实现方法:

一、Excel公式实现

假设数据在A2:C5区域(对应示例表格的行),各分桶列的公式如下:

  1. 2024列(单年度分桶):
    在D2单元格输入公式,下拉填充:

    =IF(YEAR(B2)=YEAR(C2),IF(YEAR(B2)=2024,1,0),0)
    

    逻辑:先判断起止年份是否一致,一致且为2024则返回1,否则返回0。

  2. 2024-2025列(跨年度分桶):
    在E2单元格输入公式,下拉填充:

    =IF(AND(YEAR(B2)=2024,YEAR(C2)=2025),1,0)
    

    逻辑:判断起始年为2024且结束年为2025时返回1,否则返回0。

  3. 2024-2028列(跨年度分桶):
    在F2单元格输入公式,下拉填充:

    =IF(AND(YEAR(B2)=2024,YEAR(C2)=2028),1,0)
    

    逻辑:判断起始年为2024且结束年为2028时返回1,否则返回0。

二、Python Pandas实现

如果需要批量处理大量数据,用Pandas更高效,代码示例如下:

import pandas as pd

# 构造示例数据(实际可替换为读取文件,如pd.read_excel())
data = {
    'ID': ['A', 'B', 'C', 'D'],
    'Start_Date': ['4/24/2024', '4/24/2024', '4/24/2024', '4/9/2024'],
    'End-Date': ['6/2/2025', '7/1/2024', '6/2/2028', '8/2/2028']
}
df = pd.DataFrame(data)

# 转换日期格式并提取起止年份
df['Start_Year'] = pd.to_datetime(df['Start_Date']).dt.year
df['End_Year'] = pd.to_datetime(df['End-Date']).dt.year

# 生成各分桶列
df['2024'] = df.apply(lambda row: 1 if row['Start_Year'] == row['End_Year'] == 2024 else 0, axis=1)
df['2024-2025'] = df.apply(lambda row: 1 if row['Start_Year'] == 2024 and row['End_Year'] == 2025 else 0, axis=1)
df['2024-2028'] = df.apply(lambda row: 1 if row['Start_Year'] == 2024 and row['End_Year'] == 2028 else 0, axis=1)

# 筛选并输出目标列
result = df[['ID', 'Start_Date', 'End-Date', '2024', '2024-2025', '2024-2028']]
print(result)

运行后即可得到符合要求的结果表格。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.24 18:53:14