我有一個從此命令生成的示例數(shù)據(jù)集df = pd.DataFrame({"A": list(range(1, 21))}, "B": ["a"]*10 + ["b"]*10})所以,我的數(shù)據(jù)看起來像這樣A B1 a2 a3 a4 a5 a6 a7 a8 a9 a10 a11 b12 b13 b14 b15 b16 b17 b18 b19 b20 b我想按 B 列獲取第一個分位數(shù)(Q1)和第三個分位數(shù)(Q3)的輸出組。預(yù)期的輸出應(yīng)該是B Q1 Q3a 3.25 7.75b 13.25 17.75我嘗試按如下方式進行聚合分組df.groupby("B").agg({"A": np.quantile(0.25), "A": np.quantile(0.75)})但它不起作用,因為 np.quantile 需要解析輸入數(shù)組和閾值。我可以就如何獲得預(yù)期的輸出提出您的建議嗎?我想應(yīng)用于非常大的真實數(shù)據(jù)。非常感謝。
1 回答

UYOU
TA貢獻1878條經(jīng)驗 獲得超4個贊
使用并重命名列DataFrameGroupBy.quantile:Series.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
添加回答
舉報
0/150
提交
取消