Рассчитать квартиль на основе идентификатора - PullRequest
0 голосов
/ 04 марта 2019

У меня есть фрейм данных, в котором я пытаюсь вычислить первый квартиль (0,25), сгруппированный по идентификатору в другом столбце.

Например, в приведенном ниже фрагменте кода я хотел бы создать новый столбец с именемКвартиль 1 со значениями первого квартиля (0,25) для сгруппированных ABC и DEF соответственно.

Таким образом, все строки с идентификатором 'ABC' будут иметь одинаковые значения (аналогично для DEF).

df = pd.DataFrame({'ID': ['ABC', 'DEF', 'ABC', 'DEF', 'ABC'], 'Values': [57, 72, 88, 43, 61]})
df['Quartile 1'] = 

Index ID    Values  Quartile_1
0     ABC     57    
1     DEF     72    
2     ABC     88    
3     DEF     43    
4     ABC     61

1 Ответ

0 голосов
/ 04 марта 2019

transform + quantile

df['Quartile_1'] = df.groupby('ID').Values.transform('quantile', q=0.25)

    ID  Values  Quartile_1
0  ABC      57       59.00
1  DEF      72       50.25
2  ABC      88       59.00
3  DEF      43       50.25
4  ABC      61       59.00
...