столбец Pandas: применение функции

#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