1

我有一个数据框,我正在尝试计算按另一列中的 ID 分组的第一个四分位数 (0.25)。

例如,在下面的代码片段中,我想创建一个名为 Quartile 1 的新列,其中第一个四分位数 (0.25) 值分别用于分组的 ABC 和 DEF。

因此,ID 为“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
4

1 回答 1

2

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
于 2019-03-04T20:59:01.080 回答