擅长:python、mysql、java
<p>您可以使用groupby+<code>nunique()</code>根据另一列中的值查看一列中唯一值的数量:</p>
<pre><code>>>> df.groupby('style')['brand'].nunique()
style
cup 2
pack 1
Name: brand, dtype: int64
>>> df.groupby('brand')['style'].nunique()
brand
Indomie 1
Nissin 1
Yum Yum 1
Name: style, dtype: int64
</code></pre>
<p>与往常一样,您可以使用<code>.transform('nunique')</code>代替原始形状来实现这一点。现在将其与第一个条件结合起来:</p>
<pre><code>>>> df[df.duplicated(['style', 'brand'], keep=False)
... & df.groupby('style')['brand'].transform('nunique').eq(1)
... & df.groupby('brand')['style'].transform('nunique').eq(1)]
brand style rating
3 Indomie pack 15.0
4 Indomie pack 5.0
</code></pre>