Медиана с группой и частотой - PullRequest
0 голосов
/ 08 февраля 2020

Предположим, у меня есть этот фрейм данных, называемый 'market'

market = pd.DataFrame({'product': ['milk', 'milk', 'milk', 'bread', 'bread'], 
                   'frequency': [4,2,6,3,5],
                  'price_each': [3,4,5,10,8]})
market

Это будет

product frequency price_each
milk    4         3
milk    2         4
milk    6         5
bread   3         10
bread   5         8

Как правильно рассчитать медиану по групповым продуктам и частоте использования?

Что я сделал (но получил неверный результат)

market.groupby('product')['price_each'].median()

Реальный и ожидаемый результат

product   median of price each
milk      4.5       
bread     8       

1 Ответ

1 голос
/ 08 февраля 2020

Использование numpy.repeat и numpy.median:

new_df = market.groupby('product').apply(lambda x: np.median(np.repeat(x['price_each'], x['frequency'])))
print(new_df)

Вывод:

product
bread    8.0
milk     4.5
dtype: float64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...