Ошибка квинтилей - PullRequest
0 голосов
/ 25 июня 2018

Это мой фрейм данных:

      Date       AAPL      NFLX       INTC    AAPL_Ret   NFLX_Ret   INTC_Ret
0 2008-01-31  27.834286  3.764286  25.350000       
1 2008-02-29  27.847143  3.724286  24.670000   -0.07     0.25       -0.05     
2 2008-03-31  25.721428  3.515714  22.670000    0.15     0.10       0.06  
3 2008-04-30  25.377142  3.554286  22.879999    etc
4 2008-05-31  24.464285  3.328571  22.260000

Я пытаюсь организовать возврат по каждой акции (последние 3 столбца) в квинтили.Я хочу масштабировать это (многие акции в конечном итоге, а не только 3), поэтому я попробовал этот код, который будет применять qcut только к столбцам в моей df, в которых есть _Ret:

df ['Quintile'] =pd.qcut (df [[col для col в df.columns, если "_Ret" в col]], 5, label = np.arange (5, 0, -1))

Ошибка, которую я получаю ""входной массив должен быть одномерным "

Спасибо за помощь!

1 Ответ

0 голосов
/ 25 июня 2018

Проблема в том, что pd.qcut функция принимает массив 1d, и вы передаете фрейм данных.Вместо этого вы можете сделать что-то вроде:

for col in df.columns:
    if '_Ret' in col:
        df[col+'_quantile'] = pd.qcut(df[col], 5, labels=list(range(5,0,-1)))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...