Python 数据帧筛选器列A取决于列B是否包含A中一组值的x

Python 数据帧筛选器列A取决于列B是否包含A中一组值的x,python,pandas,dataframe,Python,Pandas,Dataframe,我想过滤列ref上的以下数据帧df,基于ref中的值的if,列类型包含值'p' In [32]: df Out[32]: ref type 0 1 P 1 1 C 2 1 A 3 2 C 4 3 P 5 3 P 6 4 P 7 4 A 8 5 C 9 5 A 在这里,ref值1、3和4至少包含一行,列type中的值'p',而2和5不包含 我试图过滤掉带有ref2和5的

我想过滤列
ref
上的以下数据帧
df
,基于
ref
中的值的if,列
类型
包含值
'p'

In [32]: df
Out[32]: 
   ref type
0    1    P
1    1    C
2    1    A
3    2    C
4    3    P
5    3    P
6    4    P
7    4    A
8    5    C
9    5    A
在这里,
ref
值1、3和4至少包含一行,列
type
中的值
'p'
,而2和5不包含

我试图过滤掉带有
ref
2和5的任何行,以便最终输出为:

In [34]: df
Out[34]: 
   ref type
0    1    P
1    1    C
2    1    A
4    3    P
5    3    P
6    4    P
7    4    A

我如何才能做到这一点(最好是一步完成)?

使用
groupby
filter

df.groupby('ref').filter(lambda x : ('P' in x['type'].values))
返回:

   ref type
0    1    P
1    1    C
2    1    A
4    3    P
5    3    P
6    4    P
7    4    A

这是否需要对两列以上的内容起作用?@JamesAndrews是的,输出包含多个列,但只有两列与筛选相关。太好了!非常感谢@sacul:)