You need to enable JavaScript to run this app. 月份与年份分属不同列时如何获取对应月份的天数
优惠活动
大模型
产品
解决方案
定价
更多

月份与年份分属不同列时如何获取对应月份的天数

解决方案

以下两种方案都可以实现从int类型的年、月字段获取对应月份天数:

方案1:使用calendar模块的monthrange函数

之前调用失败通常是因为直接把整列年、月传给了monthrange,该函数只支持接收单个int类型的年、月参数,需要通过apply逐行处理:

# 导入依赖
import pandas as pd
import calendar

# 假设你的DataFrame中存储年份的字段名为year,存储月份的字段名为month
df['month_days'] = df.apply(lambda row: calendar.monthrange(row['year'], row['month'])[1], axis=1)

说明:calendar.monthrange(年, 月)返回的是元组(当月第一天对应的周几序号, 当月总天数),取下标为1的元素即可得到当月天数,会自动处理闰年2月的特殊情况。

方案2:使用pandas内置datetime方法,无需额外导入calendar

可以先把年、月字段拼接为datetime类型,直接调用内置属性获取天数,性能比逐行apply更高,适合数据量较大的场景:

# 一行写法直接生成天数字段
df['month_days'] = pd.to_datetime(df[['year', 'month']].assign(day=1)).dt.days_in_month

说明:这里先给年、月补了1号作为默认日期,转换为datetime类型后,dt.days_in_month属性可以直接返回对应月份的总天数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 20:00:04