min () операция над вложенными groupby в pandas
Я просто знакомлюсь с пандами и не могу преодолеть концептуальную проблему. Мой фрейм данных выглядит следующим образом:
df=pd.DataFrame({'ANIMAL':[1,1,1,1,1,2,2,2],
'AGE_D' : [3,6,47,377,698,1,9,241],
'AGE_Y' : [1,1,1,2,2,1,1,1]})
Я хотел бы сделать вложенную группу внутри animal и age_y, а затем выбрать min в подгруппе.
Желаемый результат будет тогда:
ANIMAL AGE_Y AGE_D
1 1 3
1 2 377
2 1 1
Я могу сделать это без вложенности в animal, например, если мой df2 = подмножество для ANIMAL=1
тогда
df2.loc[df2.groupby('AGE_Y')['AGE_D'].idxmin()]
Но все, что я пытался сделать с гнездованием животного в группе, оказалось безуспешным. Я предполагаю, что мой заказ из операций это неправильно...
Как я должен это сделать?
1 ответ:
Я думаю, что вам нужно добавить столбцы в
groupby- group by columnsANIMALandAGE_Y:df = df2.loc[df2.groupby(['ANIMAL','AGE_Y'])['AGE_D'].idxmin()] df = df[['ANIMAL','AGE_Y','AGE_D']] print (df) ANIMAL AGE_Y AGE_D 0 1 1 3 3 1 2 377 5 2 1 1
Comments