получить записи данных в фрейме панды в соответствии с определенным квантилем столбца - PullRequest
0 голосов
/ 01 мая 2018

Я хотел бы получить записи фрейма данных df, значения столбца которого c равны списку указанных квантилей.

для одного квантиля это работает:

df = pd.DataFrame({'A': ['a', 'b', 'c', 'd', 'e'], 'C': [1, 2, 3, 4, 5]})
print(df[df['C'] == df['C'].quantile(q = 0.25)])

и выходы:

   A  C
1  b  2

но мне это кажется неуклюжим, а также сбой при наличии нескольких квантилей: print(df[df['C'] == df['C'].quantile(q = [0.25, 0.75])]) throws ValueError: Can only compare identically-labeled Series objects

относится к Получить K-й квантиль в каждой группе в Пандах

1 Ответ

0 голосов
/ 01 мая 2018

Вы можете сделать это следующим образом: Все, что вам нужно сделать, это сохранить желаемые квантили в списке: как показано ниже: Вы получите результат в final_df

quantile_list = [0.1,0.5,0.4]

final_df = pd.DataFrame(columns = df.columns)
for i in quantile_list:
    temp = df[df['c'] == df['c'].quantile(q = i)]
    final_df = pd.concat([final_df,temp])
final_df.reset_index(drop=True,inplace=True)  #optional incase you want to reset the index
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...