首页 > 解决方案 > Python Pandas - 如何为列的每个唯一值仅选择前 N 行

问题描述

我有一个 DataFrame,我需要在 Company 列中选择不超过 3 行具有特定值的行:

姓名 工作 公司
吉米 司机 亚马逊
凯特 司机 亚马逊
强尼 韦特 多米诺骨牌
标记 经理 亚马逊
雨果 经理 多米诺骨牌
卡尔 司机 亚马逊
吉米 经理 亚马逊
吉米 经理 多米诺骨牌
贝蒂 司机 亚马逊

应该变成:

姓名 工作 公司
吉米 司机 亚马逊
凯特 司机 亚马逊
强尼 韦特 多米诺骨牌
标记 经理 亚马逊
雨果 经理 多米诺骨牌
吉米 经理 多米诺骨牌

我试过了,.groupby().size()但我肯定错过了一些东西。

标签: pythonpandas

解决方案


简单地说,选项1:

df.groupby('COMPANY').head(3)

选项 2:您可以loop通过列中的所有唯一值并打印输出:

for i in df['COMPANY'].unique():
    x = df[df['COMPANY']==i].head(3)
    print(x)

推荐阅读