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

Python中如何对DataFrame日期列按指定规则舍入并生成新列

实现方案

首先确保你已经安装了pandas库,处理逻辑如下:

  1. 先将原数据的Date列转换为pandas支持的datetime格式,方便做日期运算
  2. 按照规则判断日期的日部分:
  • 日<=15:直接取当月首日
  • 日>15:取下月首日,会自动处理12月跨年的场景

代码示例

import pandas as pd

# 假设你的DataFrame名为df
# 转换Date列为datetime类型
df['Date'] = pd.to_datetime(df['Date'], format='%m/%d/%Y')

# 生成Round Date列(向量化实现,性能优于逐行apply)
# 先计算所有日期对应的当月首日
current_month_start = df['Date'] - pd.offsets.Day(df['Date'].dt.day - 1)
# 根据日的数值判断是否要加1个月
df['Round Date'] = current_month_start.where(
    df['Date'].dt.day <= 15,
    current_month_start + pd.DateOffset(months=1)
# 如果需要输出为你示例中的字符串格式,保留下面的strftime,不需要可以删掉,保留datetime类型即可
).dt.strftime('%m/%d/%Y')

运行上述代码后得到的Round Date列就和你给出的预期结果完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 04:36:07