У меня есть DataFrame (называемый signal
), который представляет собой простую серию времени с 5 столбцами. Вот как выглядит .describe()
:
ES NK NQ YM
count 5294.000000 6673.000000 4798.000000 3415.000000
mean -0.000340 0.000074 -0.000075 -0.000420
std 0.016726 0.018401 0.023868 0.015399
min -0.118724 -0.156342 -0.144667 -0.103101
25% -0.008862 -0.010297 -0.011481 -0.008162
50% -0.001422 -0.000590 -0.001747 -0.001324
75% 0.007069 0.009163 0.009841 0.006304
max 0.156365 0.192686 0.181245 0.132630
Я хочу применить простую функцию к каждой строке и получить обратно матрицу с такими же размерами:
weights = -2*signal.subtract( signal.mean(axis=1), axis=0).divide( signal.sub( signal.mean(axis=1), axis=0).abs().sum(axis=1), axis=0 )
Однако, когда я запускаю эту строку, программа застревает. Я считаю, что эта проблема возникает из-за разницы в длине / наличии нанс. Отбрасывать nans / заполнять его нельзя, для любой строки, в которой есть nan, я хочу, чтобы nan был просто исключен из вычисления. Временным решением было бы сделать это итеративно, используя .iterrows()
, но это неэффективное решение.
Есть ли разумные решения этой проблемы?