如何选择与其他日期字段相比最近的所有日期?



我正在尝试根据预测日期(可以是 06-08-2020、06-20-2020 和 06-24-2020(收集 06-01-2020 和 06-30-2020 之间的所有日期。我遇到的问题是我只抓取了与预测日期 06-24-2020 相关的所有日期。我需要所有最新的日期,所以如果说 06-03-2020 发生在预测日期 06-08-2020 而不是 06-20-2020,我仍然需要与该预测日期关联的所有日期。这是我当前使用的代码。

df = df[df['Forecast Date'].isin([max(df['Forecast Date'])])]

它正在产生这个——

Date  
5668  2020-06-25  
5669  2020-06-26   
5670  2020-06-27  
5671  2020-06-28  
5672  2020-06-29  
5673  2020-06-30  
Media Granularity Forecast Date
5668               NaN    2020-06-24
5669               NaN    2020-06-24
5670               NaN    2020-06-24
5671               NaN    2020-06-24
5672               NaN    2020-06-24
5673               NaN    2020-06-24

长度为6(len(df[df['Forecast Date'].isin([max(df['Forecast Date'])])])(。它的长度需要为 30,每个唯一日期对应一个。它仅抓取预测日期最大值为 06-24-2020 的列。

我认为这是类似于df.sort_values(df[['Date', 'Forecast Date']]).drop_duplicates(df['Date'], keep='last')的东西,但它给了我一个key error

这很容易,但不是我所期望的。

df = df.sort_values(by=['Date', 'Forecast Date']).drop_duplicates(subset=['Date'], keep='last')

最新更新