2016-08-19 3 views
1

Вот что мой dataframe выглядит следующим образом:питона панды GroupBy о категориальных переменных

df = pd.DataFrame([ 
     ['01', 'aa', '1+', 1200], 
     ['01', 'ab', '1+', 1500], 
     ['01', 'jn', '1+', 1600], 
     ['02', 'bb', '2', 2100], 
     ['02', 'ji', '2', 785], 
     ['03', 'oo', '2', 5234], 
     ['04', 'hg', '5-', 1231], 
     ['04', 'kf', '5-', 454], 
     ['05', 'mn', '6', 45], 
    ], columns=['faculty_id', 'sub_id', 'default_grade', 'sum']) 

df 

enter image description here

Я хочу GroupBy объекта идентификатор, игнорировать субидентификатор, совокупная сумма, и назначить один default_grade к каждому объекту идентификатора , Как это сделать? Я знаю, как группировать идентификатор объекта и суммарную сумму, но я не уверен, как назначить default_grade для каждого объекта.

Большое спасибо!

+0

Что вы подразумеваете под "присваивать один default_grade"? Похоже, что у вас уже есть один 'default_grade', назначенный' per faculty_id'. – piRSquared

ответ

1

Вы можете применять различные функции по столбцу в группе, используя синтаксис словаря.

df.groupby('faculty_id').agg({'default_grade': 'first', 'sum': 'sum'}) 
+0

Большое спасибо Брюсу! –

Смежные вопросы