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