我希望只保留行,按ID分组,首先查找最小日期,然后从具有最小日期的行中筛选出更多的行,然后按ID仅保留最大值。可能存在应忽略的空值
df = pd.DataFrame({'ID':[111, 111, 111, 112, 112],
'Value':[10, 98, 99, 65, None],
'Date': ['1/1/2016', '1/1/2016', '1/3/2016', '1/6/2018', '1/7/2018']})
输入
ID Value Date
111 10 1/1/2016
111 98 1/1/2016
111 99 1/3/2016
112 65 1/6/2018
112 NULL 1/7/2018
输出
ID Value Date
111 98 1/1/2016
112 65 1/6/2018
我想我已经很接近了,但是输入最小日期让我有点困惑。我正在使用以下工具:
df.groupby("ID").max())
首先筛选最小日期,然后从目标列中获取具有最大值的索引:
仅向groupby发送一次:
为了确保日期列是Date,请键入
df.Date = pd.to_datetime(df.Date)
。虽然我认为你做到了,但是用你的例子运行上面的块是需要的相关问题 更多 >
编程相关推荐