Dataframe: определить процентильные значения ряда, получить соответствующее значение наблюдения из других рядов - PullRequest
1 голос
/ 25 марта 2020

У меня есть pandas DataFrame, состоящий из двух столбцов: path и loss.

  • path значения являются целыми числами от 0 до 300.
  • loss значения являются числами с плавающей запятой с большим количеством десятичных знаков.

Я бы хотел определить процентильные значения в loss, а затем получить соответствующее значение path. Я использовал следующий код для определения процентилей:

c80 = np.percentile(df['loss']], 80)

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

c80_path = df[df['loss'] == c80].path

и

c80_path = df.loc[df['loss'] == c80,'path']

Печать полученного c80_path значения возвращает "Series([], Name: dtype: int64)"

Я ожидаю целочисленное значение от 0 до 300. Есть идеи?

1 Ответ

1 голос
/ 25 марта 2020

процентиль может (и в этом случае будет) быть значением не в столбце loss. Поэтому df['loss']==c80 не дает результатов. Чтобы найти ближайшее значение, вы можете попробовать что-то вроде следующего:

c80_path = df.iloc[(df['loss']-c80).abs().argsort()[0]]['path']
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...