熊猫交集的群体

时间:2017-02-02 23:11:29

标签: python pandas group-by intersection

您好我正在尝试找到每个Player中显示的唯一Team

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

,结果应为:

result =

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

因为Joe和Steve是每个Player

中唯一的Team

1 个答案:

答案 0 :(得分:5)

您可以使用df = df[df.groupby('Player')['Team'].transform('nunique') == df['Team'].nunique()] 来计算每个玩家所属的独特团队数量,并将其与独特团队的总体数量进行比较。这将为您提供一个布尔数组,您可以使用它来过滤DataFrame:

  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

结果输出:

{{1}}