我有一个数据框,其中索引是日期。我想获取索引中的日期列表,但只能每 90 天获取一次。所以它将是 [1999-01-01, 1999-04-01, 1999-07-01...] 等等。
df #is my dataframe
date_list = df.index.tolist()
new_list=[]
for date in date_list:
new_date = date +datetime.timedelta(days=90)
new_list.append(new_date)
这只是给了我所有的日期,但移动了 90 天。我正在使用 datetime.timedelta(),因为我的数据框缺少假期或周末等日期,所以我不能只调用数据框中的每 90 个单元格。
首先我只想获取列表,然后我将进行一个 while 循环以确保列表中的日期可以移动一到三天以防周末或假期。
请您参考如下方法:
一种更有效的方法是使用索引中的第一个和最后一个值生成范围,使用 date_range :
pd.date_range(start, end, freq='90D')
开始和结束分别是df.index[0]和df.index[-1],freq参数接受一个频率值,这里是 90 天,适合您的要求。
这比将 90 天添加到每个值然后取消其中的大部分要快得多。
