С помощью @ Welcome to Stack Overflow мне удалось усечь распределение Пуассона с использованием верхнего предела. Когда я использовал функцию так называемого усеченного Пуассона , которая является определяемой пользователем функцией, она работала с одним значениемзапись, которую я показал в коде ниже:
import scipy.stats as sct
import pandas as pd
def truncated_Poisson(mu, max_value, size):
temp_size = size
while True:
temp_size *= 2
temp = sct.poisson.rvs(mu, size=temp_size)
truncated = temp[temp <= max_value]
if len(truncated) >= size:
return truncated[:size]
mu = 2.5
max_value = 10
print(truncated_Poisson(mu, max_value, 1))
К сожалению, я выдал ошибку, когда применил ее во фрейме данных следующим образом:
data = pd.DataFrame()
data['Name'] = ['A','B','C','D','E']
data ['mu'] = [0.5,1.2,2,2.5,2.8]
max_value = 5
size = 1
data ['Pos'] = truncated_Poisson(data.mu,max_value,size = 1)
Заявление об ошибкеis
ValueError: size does not match the broadcast shape of the parameters.
Может кто-нибудь посоветовать мне, как использовать эту функцию в кадре данных?
Спасибо
Zep.