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

如何对整个DataFrame应用日期操作生成year_month字段?

在Pandas DataFrame中创建year_month字段的方法

嗨,我来帮你搞定这个问题!要在DataFrame里批量生成year_month字段,核心是利用Pandas的日期处理能力,下面分几种最常见的场景给你演示:

场景1:已有datetime类型的日期列

如果你的DataFrame里已经有一个datetime类型的列(比如叫order_date),直接用.dt.strftime()方法就能快速生成指定格式的year_month:

import pandas as pd

# 假设你的DataFrame是df,日期列是order_date
df['year_month'] = df['order_date'].dt.strftime('%Y-%m')  # 生成格式如:2024-05
# 要是你需要其他格式,比如202405就用'%Y%m',May2024就用'%b%Y'

这里的.dt访问器是关键,它能让你对整列datetime数据批量操作,不用手动写循环,效率拉满~

场景2:日期列是字符串格式

如果你的日期是字符串(比如'2024/05/18'、'05-2024'这类),先把它转换成datetime类型再处理:

# 第一步:将字符串列转为datetime类型(自动识别常见格式)
df['order_date'] = pd.to_datetime(df['order_date'])
# 第二步:生成year_month
df['year_month'] = df['order_date'].dt.strftime('%Y-%m')

如果你的字符串格式比较特殊,还可以给pd.to_datetime()加format参数指定格式,比如pd.to_datetime(df['order_date'], format='%d/%m/%Y')。

场景3:只有单独的年、月列

如果你的DataFrame里分开存了year(数字型,比如2024)和month(数字型,比如5)列,可以用字符串拼接的方式生成:

# 把月份转成两位数字(比如5→'05'),再和年份拼接
df['year_month'] = df['year'].astype(str) + '-' + df['month'].apply(lambda x: f'{x:02d}')

常见格式符参考

你可以根据需求调整strftime的参数,常用的格式符有:

  • %Y:4位完整年份(如2024)
  • %y:2位年份(如24)
  • %m:两位数字月份(01-12)
  • %b:英文月份缩写(Jan-Dec)
  • %B:英文完整月份名(January-December)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.19 10:43:42