从具有多列条件的数据框中获取行

Rom*_*min 3 python dataframe pandas

展示我想要的内容然后解释它会很容易。考虑以下数据框:

dr = {'mac':[1, 3, 2, 4, 1, 2], 's': ['aa', 'aa', 'c', 'd', 'ee', 'f']}
d = pd.DataFrame(data=dr)
Run Code Online (Sandbox Code Playgroud)

理想的输出是:

    mac     s
0   1      aa 
4   1      ee
Run Code Online (Sandbox Code Playgroud)

我需要找到所有 'mac' 都有 'aa' 和 'ee' 值。在关于它的示例中,对于 mac = 1,它是真的。对于 mac = 3,它是假的,因为有 'aa' 值但没有 'ee'。

WeN*_*Ben 7

IIUCfilterisin

out=d.groupby('mac').filter(lambda x : pd.Series(['aa','ee']).isin(x['s']).all())
Out[62]: 
   mac   s
0    1  aa
4    1  ee
Run Code Online (Sandbox Code Playgroud)