Numpy Функция Lognorm, используемая в датафрейме - PullRequest
1 голос
/ 22 апреля 2020

Предположим, у вас есть кадр данных A, который выглядит следующим образом:

ID  sigma  miu   prob
1    20    0.5   0.875
2    25    0.2   0.800
3    10    0.4   0.668
4    30    0.6   0.994

как я могу использовать python для создания другого столбца, который выполняет этот эквивалентный расчет Excel?

LOGNORM.INV(prob, sigma, exp(miu))

заранее спасибо:)

Ответы [ 3 ]

2 голосов
/ 22 апреля 2020

Как показывает ошибка, scipy.stats.lognorm не возвращает объект, для которого вы можете выполнить итерацию. Возвращает непрерывную случайную величину. Он наследует от scipy generi c class scipy.stats.rv_continuous, предназначенного для подкассировок.

Я бы посоветовал вам проверить docs , чтобы вы знали, чего от него ожидать и посмотрите методы, которые у него есть.

2 голосов
/ 22 апреля 2020

Это ожидаемый вывод функции scipy.stats.lognorm, как указано в документации .

1 голос
/ 22 апреля 2020

Используйте метод ppf, чтобы получить x, при котором вероятность является желаемой

data = [20, 25, 10, 30]
miu = [0.5, 0.2, 0.4, 0.6]
prob = [0.875, 0.800, 0.668, 0.994]

df = pd.DataFrame(dict(sigma=data, miu=miu, prob=prob))

df['calc'] = scipy.stats.lognorm(s=df['sigma'], scale=np.exp(df['miu'])).ppf(df.prob)
...