编程语言
首页 > 编程语言> > python-熊猫:月度日期范围与天数

python-熊猫:月度日期范围与天数

作者:互联网

假设我有一个开始日期和结束日期,如下所示:

start_d = datetime.date(2017, 7, 20)
end_d = datetime.date(2017, 9, 10)

我希望获得一个如下所示的Pandas DataFrame:

Month    NumDays
2017-07  12
2017-08  31
2017-09  10

它显示了我范围内每个月的天数.

到目前为止,我可以使用pd.date_range(start_d,end_d,freq =’MS’)生成每月系列.

解决方法:

您可以先使用date_range作为默认的日频率,然后使用size创建系列和resample.最后通过to_period转换为月周期:

start_d = pd.datetime(2017, 7, 20)
end_d = pd.datetime(2017, 9, 10)

s = pd.Series(index=pd.date_range(start_d, end_d))

df = s.resample('MS').size().rename_axis('Month').reset_index(name='NumDays')
df['Month'] = df['Month'].dt.to_period('m')
print (df)
    Month  NumDays
0 2017-07       12
1 2017-08       31
2 2017-09       10

感谢您0​​7004简化解决方案:

df = s.resample('MS').size().to_period('m').rename_axis('Month').reset_index(name='NumDays')

标签:date-range,pandas,python
来源: https://codeday.me/bug/20191025/1930468.html