Для следующего фрейма данных я пытаюсь добавить новый столбец с именем pdf
и рассчитать pdf для каждого его значения:
df=
id/uniqueID data mean std
5171/0 10.0 2.8 0.0
5171/1 40.9 2.5 3.4
5171/2 60.7 3.1 5.2
...
5171/57 0.5 1.3 5.1
4567/0 1.5 2.0 1.0
4567/1 4.4 2.0 1.3
4567/2 6.3 3.0 1.5
...
4567/57 0.7 1.4 1.6
...
9584/0 0.3 2.6 0.0
9584/1 0.5 1.2 8.3
9584/2 0.7 3.0 5.6
...
9584/57 0.7 1.3 0.1
Вот как я пытался это сделать:
idxs = unique(df.index).tolist()
df['pdf'] = None
for idx in idxs:
df['pdf'].loc[idx] = norm(loc=df['mean'].loc[idx], scale=df['std'].loc[idx]).pdf(df['data'].loc[idx])
, которая дает мне эту ошибку: {TypeError} ufunc 'isnan' not supported for the input types, and the inputs could not be safely coerced to any supported types according to the casting rule "safe"
Это работает, если я вычисляю pdf () для одного единственного значения:
norm(loc=df['mean'].loc[idx][0], scale=df['std'].loc[idx][0]).pdf(df['data'].loc[idx][0])
в чем проблема и как я могу это исправить?