首页 > 解决方案 > Groupby pandas数据框并根据条件保留所有行

问题描述

我有一个熊猫数据框,如下所示:

import pandas as pd
df = pd.DataFrame({'col1':['abc', 'abc', 'abc', 'xyz', 'xyz', 'cd'], 'col2':['2020-02-01', '2020-02-01', '2020-01-01', '2020-01-01', '2020-05-01', '2020-06-01']})
df


    col1    col2
0   abc    2020-02-01
1   abc    2020-02-01
2   abc    2020-01-01
3   xyz    2020-01-01
4   xyz    2020-05-01
5   cd     2020-06-01

我想要基于 col1 的 yo groupby 并保留 col2 最大值的所有行

我的预期结果:

    col1    col2
0   abc    2020-02-01
1   abc    2020-02-01
4   xyz    2020-05-01
5   cd     2020-06-01

我尝试了下面的代码,但它只给了我 col2 最大值的行

df.sort_values('col2').groupby(['col1']).tail(1)

标签: python-3.xpandas

解决方案


推荐阅读