首页 > 解决方案 > Python pandas 按逻辑按过滤记录分组

问题描述

我有熊猫数据框: 在此处输入图像描述

从中,我需要根据以下逻辑选择所有资源:

  1. 多个公司的状态为“接受”的资源
  2. 多个角色的状态为“接受”的资源

预期输出:在此处输入图像描述

标签: python-3.xpandaspandas-groupby

解决方案


您可以尝试以下代码:

#create dataframe
d = [['T1','A','Engineer','accept'],['T2','B','Doctor','accept'],['T2','A','Engineer','Reject'],['T1','A','Engineer','Reject']]
df = pd.DataFrame(d)

df.columns = ['Resource','Company','Role','Status']
df_= df.loc[df['Status']=="accept",]

#group by 2 columns
df_.groupby(['Resource'])['Role','Company'].nunique().add_prefix('num_').reset_index()

推荐阅读