📜  如何在每组熊猫中选择前 5 名 - Python (1)

📅  最后修改于: 2023-12-03 15:09:02.887000             🧑  作者: Mango

如何在每组熊猫中选择前 5 名 - Python

在一个数据集或者 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 中使用非常广泛,所以必须熟悉使用。