为什么 pandas date_range 不是我指定的日期?

Why is day of pandas date_range not what I specified?

为什么第一次约会不是 4/19/1965?为什么第 30 天而不是第 19 天?

dates = pd.date_range('1965-04-19', freq='6M', periods=3)
dates[0]

Timestamp('1965-04-30 00:00:00', offset='6M')

看起来 freq='M' 的默认行为是 MonthEnd(),所以

dates = pd.date_range('1965-04-19', periods=3, freq='6M')
dates

DatetimeIndex(['1965-04-30', '1965-10-31', '1966-04-30'], dtype='datetime64[ns]', freq='6M', tz=None)

这可以通过设置 freq = pd.tseries.offsets.DateOffset(months=6) 来改变。

dates = pd.date_range('1965-04-19', periods=3, freq=pd.tseries.offsets.DateOffset(months=6))
dates

DatetimeIndex(['1965-04-19', '1965-10-19', '1966-04-19'], dtype='datetime64[ns]', freq='<DateOffset: kwds={'months': 6}>', tz=None)