#python #pandas #apply #axis
#python #pandas #применить #ось
Вопрос:
У меня есть фрейм данных pandas df
df:
GROUP VALUE
1 5
2 2
1 10
2 20
1 7
И я пытаюсь применить следующую функцию к одному из столбцов
import pandas as pd
from statsmodels import robust
import numpy as np
def madout(x):
mad = robust.mad(x)
median = np.median(x)
mad_s = (abs(x - median / mad))
return mad_s
df.VALUE.apply(madout)
но получаю ошибку, несмотря на мои несколько попыток
AxisError: ось 0 выходит за пределы массива размерности 0. Пожалуйста, помогите
Комментарии:
1. Какая строка выдает эту ошибку?
Ответ №1:
apply
собирается применить функцию к каждому элементу столбца df.VALUE
.
Я думаю, что вы ищете:
In [8]: madout(df.VALUE)
Out[8]:
0 3.426191
1 0.426191
2 8.426191
3 18.426191
4 5.426191
Name: VALUE, dtype: float64