Суммируйте значения во фреймах данных панды - PullRequest
0 голосов
/ 10 октября 2018

Я хочу рассчитать максимальное значение для каждого года и показать сектор и это значение.Например, на снимке экрана я хотел бы отобразить: 2010: Telecom 781 2011: Tech 973

Я пытался использовать: df.groupby (['Year', 'Sector']) ['Доход'] .max ()

, но это не дает мне имя Сектора, которое имеет наибольшее значение.enter image description here

Ответы [ 2 ]

0 голосов
/ 10 октября 2018

Также .sort_values + .tail, группировка по году.Данные из @Scott Boston

df.sort_values('Revenue').groupby('Year').tail(1)

Вывод:

               Sector  Year  Revenue
9          Heath Care  2014      224
3        Construction  2013      423
1                Tech  2011      466
12  Financial Service  2012      838
5             Telecom  2010      843
0 голосов
/ 10 октября 2018

Попробуйте использовать idxmax и loc:

df.loc[df.groupby(['Sector','Year'])['Revenue'].idxmax()]

MVCE:

import pandas as pd
import numpy as np

np.random.seed(123)
df = pd.DataFrame({'Sector':['Telecom','Tech','Financial Service','Construction','Heath Care']*3,
                   'Year':[2010,2011,2012,2013,2014]*3,
                   'Revenue':np.random.randint(101,999,15)})

df.loc[df.groupby(['Sector','Year'])['Revenue'].idxmax()]

Выход:

               Sector  Year  Revenue
3        Construction  2013      423
12  Financial Service  2012      838
9          Heath Care  2014      224
1                Tech  2011      466
5             Telecom  2010      843
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...