假设有一个 DataFrame df,其中有三列,分别为 column1、column2 和 column3。我们需要按 column1 和 column2 分组,返回每个分组中 column3 计数最大的行。
首先,我们可以用 groupby 函数按 column1 和 column2 分组,并使用 size 函数计算每个分组的数量:
grouped = df.groupby(['column1', 'column2']).size().reset_index() grouped.columns = ['column1', 'column2', 'count']
然后,我们可以用 merge 函数将原始 DataFrame 和分组计数 DataFrame 进行合并:
merged = pd.merge(df, grouped, on=['column1', 'column2'])
接下来,我们可以用 groupby 函数再次按 column1 和 column2 分组,并使用 idxmax 函数返回每个分组中 count 最大的行:
result = merged.loc[merged.groupby(['column1', 'column2'])['count'].idxmax()]
最后,我们可以重置索引并删除 count 列:
result = result.reset_index(drop=True).drop('count', axis=1)