#python-3.x #pandas #pandas-groupby
#python-3.x #pandas #pandas-groupby
Вопрос:
У меня есть фрейм данных pandas:
Из этого мне нужно выбрать все ресурсы на основе приведенной ниже логики:
- Ресурсы, имеющие статус «Принять» для нескольких компаний
- Ресурсы, имеющие статус «Принять» для нескольких ролей
Комментарии:
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. ( как показано в ожидаемом результате)