我想使用此 Dataframe
df = pd.DataFrame({'Serial' : ['A1', 'A1', 'A1', 'B1','B1', 'B1'],'Day' : ['01.01.2022', '01.01.2022', '01.01.2021', '01.01.2019', '01.01.2019', '01.01.2020'],'Else' : ['a', 'b', 'c', 'd','e', 'f']})
groupby Serial并只保留具有max(Day)的行,即下面是我的预期输出:
| 序列号|日|埃尔塞|
| - -|- -|- -|
| A1级|2022年1月1日|一种|
| A1级|2022年1月1日|B|
| 地下一层|2020年1月1日|关闭|
我成功地计算了最大值,但不知道如何使用它来过滤,以获得预期的输出。
df['Day']= pd.to_datetime(df['Day'], format="%d.%m.%Y")
df = df.groupby(['Serial'])['Day'].max()
2条答案
按热度按时间nlejzf6q1#
这里有一种方法
第一个
zte4gxcn2#
基于这个answer,你应该首先得到你的日期是最大值的所有索引。然后你可以在你的 Dataframe 上使用你的索引。
它会给出如下结果