Python 以更有效的方式过滤数据帧

Python 以更有效的方式过滤数据帧,python,pandas,dataframe,Python,Pandas,Dataframe,如何以更好的方式编写以下代码: majority_df = df[(df.voting_majority_status_fk == 4) & (df.other == True)] minority_df = df[(df.voting_majority_status_fk == 3)] 我只需要获取vp_-fk中的大多数和不在少数minority中的,然后通过找到唯一的vp_-fk 我怎样才能用更多的方式写作 majority_vp_fk = set(majority_df.vp_f

如何以更好的方式编写以下代码:

majority_df = df[(df.voting_majority_status_fk == 4) & (df.other == True)]
minority_df = df[(df.voting_majority_status_fk == 3)]
我只需要获取
vp_-fk
中的大多数和不在少数
minority
中的,然后通过找到唯一的
vp_-fk

我怎样才能用更多的方式写作

majority_vp_fk = set(majority_df.vp_fk)
minority_vp_fk = set(minority_df.vp_fk)

clean_majority_vp_fk = majority_vp_fk - minority_vp_fk

clean_majority_df = majority_df[majority_df.vp_fk.isin(clean_majority_vp_fk)]
clean_majority_df = clean_majority_df.drop_duplicates(subset=['probe_fk', 'vp_fk', 'masking_box_fk', 'product_fk'])
以下是我的“非常理论化”(没有样本数据集很难进行测试)解决方案:

minority_df = df[(df.voting_majority_status_fk == 3)]
qry = "voting_majority_status_fk == 4 and other == True and vp_fk not in @minority_df.vp_fk"
result = (df.query(qry)
            .drop_duplicates(subset=['probe_fk', 'vp_fk', 'masking_box_fk', 'product_fk']))

您能否提供一个小的可复制样本数据集和预期/期望的结果数据集?