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

Pandas DataFrame如何判断日期是否为6月并新增yes/no标注列

Pandas DataFrame按日期列月份生成标识列解决方案

前置操作

假设你的日期列名称为date,首先需确保该列已转换为Pandas datetime格式,若仍为字符串格式可执行以下代码转换:

df['date'] = pd.to_datetime(df['date'])

如果读入数据时就需要解析日期,也可以在读入阶段直接指定,省掉单独转换的步骤:

df = pd.read_csv('你的文件路径.csv', parse_dates=['date'])

核心实现代码

通过Pandas日期内置的dt.month属性判断月份是否为6,直接生成新列is_june:

df['is_june'] = df['date'].dt.month.eq(6).map({True: 'yes', False: 'no'})

你也可以用numpy.where实现相同逻辑,写法更直观:

import numpy as np
df['is_june'] = np.where(df['date'].dt.month == 6, 'yes', 'no')

测试验证

你可以用以下测试代码验证逻辑正确性:

import pandas as pd

# 构造测试数据
df = pd.DataFrame({
    'date': ['2019-05-30', '2019-06-01', '2019-07-15', '2020-06-20']
})
# 转换日期格式
df['date'] = pd.to_datetime(df['date'])
# 生成新列
df['is_june'] = df['date'].dt.month.eq(6).map({True: 'yes', False: 'no'})

print(df)

输出结果如下:

date is_june
0 2019-05-30      no
1 2019-06-01     yes
2 2019-07-15      no
3 2020-06-20     yes

注意事项

  • 优先使用上述向量化运算方案,不要用逐行apply的写法,处理十万行以上级别的数据时性能差距可达几十倍
  • 如果你的日期列存在空值,生成的新列对应位置会默认返回no,如果需要单独标记空值可以额外加判断逻辑

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 08:36:04