这里发生了什么? 我需要生成一个月初日期的数据框,(1-1-2014到12-1-2014)fwiw我在其他地方使用fcast_year变量,我需要月末,因此做日期数学
from pandas.tseries.offsets import *
fcast_yr=pd.to_datetime('2014-12-31')
x=(fcast_yr + pd.DateOffset(days= -30)) # to set x to 2014-12-01
d=pd.date_range((x +pd.DateOffset(months=-10)), periods=12, freq='MS') #"MS" means start of month!!
print d.values
给出这些月末价值...... yech !!
['2014-01-31T18:00:00.000000000-0600' '2014-02-28T18:00:00.000000000-0600'
'2014-03-31T19:00:00.000000000-0500' '2014-04-30T19:00:00.000000000-0500'
'2014-05-31T19:00:00.000000000-0500' '2014-06-30T19:00:00.000000000-0500'
'2014-07-31T19:00:00.000000000-0500' '2014-08-31T19:00:00.000000000-0500'
'2014-09-30T19:00:00.000000000-0500' '2014-10-31T19:00:00.000000000-0500'
'2014-11-30T18:00:00.000000000-0600' '2014-12-31T18:00:00.000000000-0600']
使用13.0 pf Pandas
答案 0 :(得分:8)
您无需强制开始月份的时间戳;频率会这样做(但你的答案是正确的)。
'值'就是numpy代表日期的方式(它们是UTC)。
In [8]: pd.date_range((Timestamp('20141231') +pd.DateOffset(months=-11)), periods=12, freq='MS')
Out[8]:
<class 'pandas.tseries.index.DatetimeIndex'>
[2014-02-01, ..., 2015-01-01]
Length: 12, Freq: MS, Timezone: None