Python pandas группируются по записям фильтра в соответствии с логикой

#python-3.x #pandas #pandas-groupby

#python-3.x #pandas #pandas-groupby

Вопрос:

У меня есть фрейм данных pandas: введите описание изображения здесь

Из этого мне нужно выбрать все ресурсы на основе приведенной ниже логики:

  1. Ресурсы, имеющие статус «Принять» для нескольких компаний
  2. Ресурсы, имеющие статус «Принять» для нескольких ролей

Ожидаемый результат: введите описание изображения здесь

Комментарии:

1. Делитесь данными, а не фотографиями

Ответ №1:

Вы можете попробовать следующий код:

 #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()
 

Комментарии:

1. Спасибо, но ожидаемый результат не таков. У него должны быть все ресурсы в Pandas DF. ( как показано в ожидаемом результате)