📅  最后修改于: 2023-12-03 15:09:02.887000             🧑  作者: Mango
在一个数据集或者 DataFrame 中,我们可能需要按照某个字段或某个条件,来选取其中的前 5 名。下面将介绍如何在每组熊猫(pandas)中选择前 5 名。
import pandas as pd
# 创建示例数据
df = pd.DataFrame({
'group': ['A', 'A', 'A', 'B', 'B', 'C', 'C', 'C', 'C'],
'value': [4, 3, 5, 2, 1, 7, 6, 8, 9]
})
# 按照 group 分组后,对每组的 value 进行排序,并选取前 5 个值
df_top5 = df.groupby('group').apply(lambda x: x.nlargest(5, 'value')).reset_index(drop=True)
# 输出结果
print(df_top5)
输出结果:
group value
0 A 5
1 A 4
2 A 3
3 B 2
4 B 1
5 C 9
6 C 8
7 C 7
8 C 6
代码中通过 pandas.DataFrame.groupby
方法将数据按照 group
字段分组,然后用 pandas.DataFrame.nlargest
方法对每组的数据按照 value
进行排序,选取前 5 个值。最后通过 pandas.DataFrame.reset_index
方法重置索引,去掉原来的组索引和元素索引。
按照以上方法,可以在每组熊猫中选择前 5 名,并返回一个新的 DataFrame。由于这个方法在 pandas 中使用非常广泛,所以必须熟悉使用。