2016-12-01 3 views
1

Моих ДАННЫЕ:Панда Медиана по индексу не значение

LogRatio Strength 
0.555   9.1 
0.542   9.6 
0.533   9.7 
0.532   9.3 
0.519   9.2 
0.508   9.5 

Я хочу иметь точку (LogRatio, прочность), что является медианой положения моей группы Indexa-IndexB

indexA = 0 
indexB = 4 
point_logRatio = df['LogRatio'][indexA:indexB].median() 
point_Strength = df[df['LogRatio']==point_logRatio['Strength'].iloc[0] 

Но Я не хочу вычислять медиану со значениями, я просто хочу, чтобы индекс строки получал LogRatio и соответствующую силу. Потому что point_logRatio вычислить медианную и не дать мне только строку. Вот почему мой point_Strength не работает, потому что вычисленная медиана не соответствует значению dataframe.

Итак, если у вас есть более простой способ, чтобы получить LogRatio и Силу в то же самое время, когда LogRatio находится в средней позиции в моей dataframe между Indexa и IndexB, спасибо.

В конце концов, я хотел бы иметь: точку = (0,533, 9,7)

Поскольку 0,533 представляет собой logRatio в средней позиции между моим индексом 0 и 4 в моем dataframe и прочности соответствующей составляет 9,7.

+1

ли вы имеете в виду 'df.iloc [Int ((0 + 4)/2) ,:]]'? – Psidom

+0

Да, это хорошие результаты, я думал, что это медиана, но я тоже могу это использовать, но это не сработает, если это не пара. Спасибо ! – Elysire

ответ

1

вы можете попробовать

median_position = (indexA+indexB)/2 
point_logRatio = df.iloc[median_position]['LogRatio'] 
point_Strength = df.iloc[median_position]['Strength'] 
Смежные вопросы