0

我正在尝试根据预测日期(可能是 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.

4

1 回答 1

0

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

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

于 2020-06-26T17:10:36.577 回答