Я пытаюсь создать новый столбец вероятности, используя функцию ниже.Мой df - это временной ряд, поэтому необходимо вычислить функцию вероятности Пуассона от индекса 0
до len(df)
в указанном порядке.Но я продолжаю получать следующие ошибки:
TypeError: ("argument of type 'numpy.int32' is not iterable", 'occurred at index 0 days 11:00:00')
from scipy.stats import poisson
λ_A = 4.0
λ_B = 5.0
a = np.array([0,0,0,1,0])
b = np.array([0,0,1,1,0])
d = {'A':a, 'B':b}
Time_Interval = pd.timedelta_range('11:00:00', periods=5, freq='10T')
df = pd.DataFrame(d, Time_Interval)
Вот как я пытался.
def colFunc(row):
adj_A=[]
for index, item in enumerate(df['A']):
if index in row['A'] == 0:
return adj_A.append(poisson.pmf(0, λ_A*index/len(df)))
else:
return adj_A.append(poisson.pmf(1, λ_A*index/len(df)))
return adj_A
df['poiss_A'] = df.apply(colFunc, axis=1)
df['poiss_B'] = df.apply(colFunc, axis=1)...with λ_B replacing λ_A.
Это то, что я преследую.
df
Out[358]:
Rest_A Rest_B poiss_A poiss_B
11:00:00 0 0 0.449329 0.367879
11:10:00 0 0 0.201897 0.135335
11:20:00 0 1 0.090718 0.149361
11:30:00 1 1 0.130439 0.073263
11:40:00 0 0 0.018316 0.006738