生成特定月份的日期?

时间:2015-05-04 16:53:16

标签: python pandas

有没有办法在输入月份和年份时生成特定月份的所有日期?

我有

daterange = date_range(date1, date2)
dates=[]
for x in daterange:
    dates.append((x.strftime('%Y-%m-%d')))

使用pandas,但我如何计算不同的月份长度?

4 个答案:

答案 0 :(得分:3)

您可以使用pd.offsets.MonthBegin,然后使用结束独占日常日期范围:

dts = pd.date_range(month_start, month_start + pd.offsets.MonthBegin(1), closed="left") 

答案 1 :(得分:0)

您可以使用日历模块执行此操作:

import calendar
date_of_first_weekday, number_days_in_month = calendar.monthrange(year, month)

答案 2 :(得分:0)

calendar模块可满足您的所有需求:

import calendar
first_weekday, month_days = calendar.monthrange(year, month)
for mday in xrange(1, month_days + 1):
    print mday

答案 3 :(得分:0)

我发现我无法在我的系统上导入calendar,所以这里只有datetime解决方案:

from datetime import date, timedelta

month, year = 2, 2008

day = timedelta(days=1)
date1 = date(year, month, 1)
dates = []
d = date1
while d.month == month:
    dates.append(d)
    d += day

(创建2008年2月的日期列表,即闰年)。如果您想要日期的字符串表示,可以使用:

from datetime import timedelta, datetime

month, year = 2, 2008

day = timedelta(days=1)
date1 = datetime(year, month, 1)
d = date1
dates = []
while d.month == month:
    dates.append(d.strftime('%Y-%m-%d'))
    d += day