use*_*979 3 python group-by intersection pandas
嗨,我正在努力寻找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
Run Code Online (Sandbox Code Playgroud)
结果应该是:
结果=
Team Player Number
A Joe 8
A Steve 11
B Joe 4
B Steve 19
C Joe 6
C Steve 18
Run Code Online (Sandbox Code Playgroud)
因为乔和史蒂夫是Player每个人中唯一的Team
您可以使用a GroupBy.transform来获取每个玩家所属的独特团队的数量,并将其与独特团队的总体数量进行比较.这将为您提供一个布尔数组,您可以使用它来过滤您的DataFrame:
df = df[df.groupby('Player')['Team'].transform('nunique') == df['Team'].nunique()]
Run Code Online (Sandbox Code Playgroud)
结果输出:
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
Run Code Online (Sandbox Code Playgroud)