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:)