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

如何将数值型日期季度标识映射为对应年份1-4的整数季度值

实现方法

你不需要写繁琐的for循环,用向量化运算就可以简洁高效完成映射,以下是最常用的pandas数据集场景的实现代码:

import pandas as pd

# 构造示例数据集
df = pd.DataFrame({
    'date': [0.25, 0.50, 0.75, 1.00, 1.25, 1.50, 1.75, 2.00, 2.25]
})

# 一行代码计算季度列,全程无显式循环
df['quarter'] = (df['date'] * 4 % 4).replace(0, 4).astype(int)

运行后得到的输出和你预期完全匹配:

date  quarter
0  0.25        1
1  0.50        2
2  0.75        3
3  1.00        4
4  1.25        1
5  1.50        2
6  1.75        3
7  2.00        4
8  2.25        1

逻辑说明

  • 核心计算逻辑是纯数值运算,执行效率远高于逐行循环:
    • 先把date列的值乘以4,原本的季度值会被转换为连续整数序列(0.254=1、0.54=2、1.04=4、1.254=5,以此类推)
    • 对4取模后,整年份的数值(比如1.0、2.0乘4后得到4、8)会得到0,其余值对应1、2、3
    • 最后把结果里的0替换为4,转成整数类型就是需要的1-4季度序号

如果你处理的是普通Python列表而非pandas结构,可以用列表推导式实现同样效果,写法也比逐行for循环简洁:

date_list = [0.25, 0.50, 0.75, 1.00, 1.25, 1.50, 1.75, 2.00, 2.25]
quarter_list = [4 if val * 4 % 4 == 0 else int(val * 4 % 4) for val in date_list]

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 07:30:49