一种方法可以做到这一点,而不必弄清楚月份结束自己.
pd.date_range(*(pd.to_datetime(['2016-01', '2016-05']) + pd.offsets.MonthEnd()), freq='M')
DatetimeIndex(['2016-01-31', '2016-02-29', '2016-03-31', '2016-04-30',
'2016-05-31'],
dtype='datetime64[ns]', freq='M')
Run Code Online (Sandbox Code Playgroud)
.union初始化后,您可以使用添加下一个逻辑值date_range.它应该按照任何频率编写:
d = pd.date_range('2016-01', '2016-05', freq='M')
d = d.union([d[-1] + 1]).strftime('%Y-%m')
Run Code Online (Sandbox Code Playgroud)
或者,您可以使用period_range而不是date_range.根据您的意图,这可能不是正确的选择,但它满足您的问题:
pd.period_range('2016-01', '2016-05', freq='M').strftime('%Y-%m')
Run Code Online (Sandbox Code Playgroud)
在任何一种情况下,结果输出都是预期的:
['2016-01' '2016-02' '2016-03' '2016-04' '2016-05']
Run Code Online (Sandbox Code Playgroud)
对于后来的人群.您也可以尝试使用月 - 开始频率.
>>> pd.date_range('2016-01', '2016-05', freq='MS', format = "%Y-%m" )
DatetimeIndex(['2016-01-01', '2016-02-01', '2016-03-01', '2016-04-01',
'2016-05-01'],
dtype='datetime64[ns]', freq='MS')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4352 次 |
| 最近记录: |