英文:
Python: calculating the 2 and 3 quartiles per group in a dataset
问题
我有以下的数据框:
df =
code count
A 1
A 2
A 3
A 4
B 7
B 8
B 9
B 10
我想要为每个代码生成第25和第75百分位数:
code 25QT 75QT
A 2.5 3.5
B 8.5 9.5
英文:
I have the following dataframe:
df =
code count
A 1
A 2
A 3
A 4
B 7
B 8
B 9
B 10
I want to produce the 25 and 75 quartiles per code:
code 25QT 75QT
A 2.5 3.5
B 8.5 9.5
答案1
得分: 1
使用groupby.quantile
,然后使用unstack
:
df.groupby('code')['count'].quantile([0.25, 0.75]).unstack()
输出:
0.25 0.75
code
A 1.75 3.25
B 7.75 9.25
使用以下格式:
out = (df.groupby('code')['count']
.quantile([0.25, 0.75]).unstack()
.rename(columns=lambda x: f'{int(x*100)}QT')
.reset_index()
)
输出:
code 25QT 75QT
0 A 1.75 3.25
1 B 7.75 9.25
英文:
Use groupby.quantile
, then unstack
:
df.groupby('code')['count'].quantile([0.25, 0.75]).unstack()
Output:
0.25 0.75
code
A 1.75 3.25
B 7.75 9.25
With the format:
out = (df.groupby('code')['count']
.quantile([0.25, 0.75]).unstack()
.rename(columns=lambda x: f'{int(x*100)}QT')
.reset_index()
)
Output:
code 25QT 75QT
0 A 1.75 3.25
1 B 7.75 9.25
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论