【问题标题】:Pandas intersection of groups熊猫交汇组
【发布时间】:2017-06-20 05:22:04
【问题描述】:

您好,我正在尝试查找每个 Team 中出现的唯一 Player

df =

Team    Player    Number
A       Joe       8
A       Mike      10
A       Steve     11
B       Henry     9
B       Steve     19
B       Joe       4
C       Mike      18
C       Joe       6
C       Steve     18
C       Dan       1
C       Henry     3

结果应该是:

结果 =

Team    Player    Number
A       Joe       8
A       Steve     11
B       Joe       4
B       Steve     19
C       Joe       6
C       Steve     18

因为乔和史蒂夫是每个Team中唯一的Player

【问题讨论】:

    标签: python pandas group-by intersection


    【解决方案1】:

    您可以使用GroupBy.transform 获取每个玩家所属的独特球队的数量,并将其与独特球队的总数进行比较。这将为您提供一个布尔数组,您可以使用它来过滤您的 DataFrame:

    df = df[df.groupby('Player')['Team'].transform('nunique') == df['Team'].nunique()]
    

    结果输出:

      Team Player  Number
    0    A    Joe       8
    2    A  Steve      11
    4    B  Steve      19
    5    B    Joe       4
    7    C    Joe       6
    8    C  Steve      18
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-07
      • 1970-01-01
      • 1970-01-01
      • 2017-12-20
      相关资源
      最近更新 更多