如何在Pandas Python中获得第二大值

2024-09-28 15:30:26 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

maxData = all_data.groupby(['Id'])[features].agg('max')
all_data = pd.merge(all_data, maxData.reset_index(), suffixes=["", "_max"], how='left', on=['Id'])

现在,我如何获取上面代码中的第二个max值(groupbyid),而不是获取最大值


Tags: 代码iddataindexmergeallmaxagg
2条回答

您可以在对值排序后使用nth方法

maxData = all_data.sort_values("features", ascending=False).groupby(['Id']).nth(1)

请忽略apply方法,因为它会降低代码的性能。在

尝试使用^{}

maxData = all_data.groupby(['Id'])[features].apply(lambda x:x.nlargest(2)[1]).reset_index(drop=True)

相关问题 更多 >