Python 在数月内与熊猫重复定制频率的更好方法

Python 在数月内与熊猫重复定制频率的更好方法,python,pandas,time-series,Python,Pandas,Time Series,我想在一个月内生成一个具有自定义频率的日期范围,并在几个月内重复。 例如,我希望每个月的第5、10和25天是: 2020-01-05 2020-01-10 2020-01-25 2020-02-05 2020-02-10 2020-02-25 2020-03-05 2020-03-10 2020-03-25 我设法做到了: df = pd.date_range("2020-01-01", "2020-03-31", freq='D') df = df[[

我想在一个月内生成一个具有自定义频率的日期范围,并在几个月内重复。 例如,我希望每个月的第5、10和25天是:

2020-01-05
2020-01-10
2020-01-25
2020-02-05
2020-02-10
2020-02-25
2020-03-05
2020-03-10
2020-03-25
我设法做到了:

df = pd.date_range("2020-01-01", "2020-03-31", freq='D')
df = df[[d in [5,10,25] for d in df.day]]

但是为了以防万一,有没有更好的方法可以在不生成所有天的整个列表的情况下执行此操作?

您可以这样做:

import pandas as pd

df = pd.DataFrame([(d + pd.DateOffset(days=i)).date() for d in pd.date_range("2020-01-01", "2020-03-31", freq='MS') for i in (4, 9, 24)])

print (df)
输出:

0  2020-01-05
1  2020-01-10
2  2020-01-25
3  2020-02-05
4  2020-02-10
5  2020-02-25
6  2020-03-05
7  2020-03-10
8  2020-03-25