gpt4 book ai didi

python - pandas 按 Q1 和 Q3 聚合进行分组

转载 作者:太空宇宙 更新时间:2023-11-03 19:51:08 25 4
gpt4 key购买 nike

我有一个从此命令生成的示例数据集

df = pd.DataFrame({"A": list(range(1, 21))}, "B": ["a"]*10 + ["b"]*10})

所以,我的数据看起来像这样

A   B
1 a
2 a
3 a
4 a
5 a
6 a
7 a
8 a
9 a
10 a
11 b
12 b
13 b
14 b
15 b
16 b
17 b
18 b
19 b
20 b

我想按 B 列获取第一个分位数 (Q1) 和第三个分位数 (Q3) 的输出组。预期输出应该是

B     Q1     Q3
a 3.25 7.75
b 13.25 17.75

我尝试按如下方式进行分组

df.groupby("B").agg({"A": np.quantile(0.25), "A": np.quantile(0.75)})

但它不起作用,因为 np.quantile 需要解析输入数组和阈值。我可以请您提供如何获得预期输出的建议吗?我想应用于相当大的真实数据。非常感谢。

最佳答案

使用DataFrameGroupBy.quantileSeries.unstack并重命名列:

df1 = (df.groupby("B")['A']
.quantile([0.25, 0.75])
.unstack()
.rename(columns={0.25:'Q1', 0.75:'Q3'}))
print (df1)
Q1 Q3
B
a 3.25 7.75
b 13.25 17.75

关于python - pandas 按 Q1 和 Q3 聚合进行分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59835498/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com