【发布时间】:2020-01-21 06:44:26
【问题描述】:
我有一个从这个命令生成的示例数据集
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 需要解析输入数组和阈值。我可以就如何获得预期的输出提出您的建议吗?我想应用于非常大的真实数据。非常感谢。
【问题讨论】:
标签: python pandas dataframe group-by aggregate