设置一个空的时间序列数据框,其中包含每月第一天的月度数据

Setting up an empty time series dataframe with monthly data for the FIRST day of the month

当我使用

设置一个空的 pandas 数据框时
GWdates = pd.date_range('1/1/1940',periods = 900, freq='M')
Big_df= pd.DataFrame(index=GWdates)

我明白了:

In [265]: df5
Out[265]: 
<class 'pandas.core.frame.DataFrame'>
DatetimeIndex: 900 entries, 1940-01-31 00:00:00 to 2014-12-31 00:00:00
Freq: M
Empty DataFrame

日期都是月末,如何让它成为月的第一天,

DatetimeIndex: 900 entries, 1940-01-01 00:00:00 to 2014-12-01 00:00:00

似乎 MonthBegin 就是我要搜索的内容,但我没有找到 docs for it。似乎我必须在后台覆盖某些东西,而我不想这样做。

您可以使用 offsets.MonthBegin():

In [280]: import pandas.tseries.offsets as offsets

In [281]: pd.date_range('1/1/1940', periods=900, freq=offsets.MonthBegin())
Out[281]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[1940-01-01, ..., 2014-12-01]
Length: 900, Freq: MS, Timezone: None

或者,实际上,如上面的 Freq: MS 所示,只需 freq='MS' 即可:

In [282]: pd.date_range('1/1/1940', periods=900, freq='MS')
Out[282]: 
<class 'pandas.tseries.index.DatetimeIndex'>
[1940-01-01, ..., 2014-12-01]
Length: 900, Freq: MS, Timezone: None