使选定月份的多年每小时频率达到 date_range

Make date_range of hourly frequency over multiple years for a selected month

我了解如何使用 freq 选项在 pandas 中制作 date_range。但是,我不知道如何使用它同时执行两个频率(或者为此我需要一个循环)?

我正在尝试为几年的跨度制作一个仅 7 月的每小时日期范围。

我试过:

In:  pd.date_range('1951-07-01','1955-07-01',freq='AS')
Out: DatetimeIndex(['1952-01-01', '1953-01-01', '1954-01-01', '1955-01-01'], dtype='datetime64[ns]', freq='AS-JAN')

还有每小时的频率。但我想要的是跨越多年的日期范围,但只是 7 月份的每小时频率。

我不想要 date_range 中除 7 月以外的任何月份。

感谢任何提示,是否需要循环?

您可以使用开始和结束 year 创建小时频率,然后仅过滤 julys:

d = pd.date_range('1951-07-01','1955-07-01',freq='H')

d = d[d.month == 7]
print (d)
DatetimeIndex(['1951-07-01 00:00:00', '1951-07-01 01:00:00',
               '1951-07-01 02:00:00', '1951-07-01 03:00:00',
               '1951-07-01 04:00:00', '1951-07-01 05:00:00',
               '1951-07-01 06:00:00', '1951-07-01 07:00:00',
               '1951-07-01 08:00:00', '1951-07-01 09:00:00',
               ...
               '1954-07-31 15:00:00', '1954-07-31 16:00:00',
               '1954-07-31 17:00:00', '1954-07-31 18:00:00',
               '1954-07-31 19:00:00', '1954-07-31 20:00:00',
               '1954-07-31 21:00:00', '1954-07-31 22:00:00',
               '1954-07-31 23:00:00', '1955-07-01 00:00:00'],
              dtype='datetime64[ns]', length=2977, freq=None)