Pandas:如何按一个数字列分组,并按每组的中位数筛选每组中的行?

2024-10-02 12:29:04 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个由一个ID、一个分类变量“a”和一个数字变量“B”组成的数据集。
我想按“A”分组,并从每个组中过滤,以仅获得avobe或等于中位数“B”的行(应为每个组计算中位数)。
例如:

^{tb1}$

我的预期结果是:

^{tb2}$

为类别1的中位数=0.5,类别2的中位数为0.3。
谢谢大家!


Tags: 数据id分类数字类别中位数tb2tb1
1条回答
网友
1楼 · 发布于 2024-10-02 12:29:04
out = df[df.groupby("A")["B"].transform(lambda x: x >= x.median())]
print(out)

印刷品:

   ID           A    B
0   1  Category 1  0.5
3   4  Category 1  0.6
4   5  Category 2  0.4

相关问题 更多 >

    热门问题