Pandas 组交集
Pandas intersection of groups
您好,我正在尝试寻找出现在每个 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
您可以使用 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
您好,我正在尝试寻找出现在每个 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
您可以使用 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