Увеличение предела значения при достижении бесконечности в пандах - PullRequest
0 голосов
/ 10 октября 2018

Структура данных:

HEIGHT Category
   51        1
   45        1
   89        2

Цель: вычислить среднее геометрическое

import pandas as pd
import numpy as np
df = pd.read_csv('BaseFish',delimiter=',')
df.dropna(axis = 0)
df = df[df.HEIGHT != 0]
table = pd.pivot_table(df,values = 'HEIGHT',index = 'Category',aggfunc=(np.prod,np.count_nonzero))
table.insert(2,'GMEAN',0)
table['GMEAN']=table['prod']**(1/table['count_nonzero'])

Проблема: Категории с большим количеством точек данных дают np.prod = бесконечность.Следовательно, окончательный GMEAN также бесконечен.

Мои знания Python очень просты, и единственная причина, по которой я их использую, потому что количество точек данных превышает лимит превышения.

1 Ответ

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

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

from scipy.stats import gmean
df.groupby('category').height.apply(gmean)

Или без импорта spicy.stats:

gmean = lambda group: group.prod()**(1/len(group))
df.groupby('category').height.apply(gmean)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...