我有一个看起来像这样的 df:
Name Letter Period Amount
123 H PRE 11
123 H PRE 14
123 H PRE 12
123 H DURING 5
123 H POST 100
456 H PRE 9
456 H DURING 50
456 H POST 600
789 J PRE 8
789 J PRE 17
789 J PRE 11
789 J DURING 9
789 J POST 201
789 J POST 202
789 J POST 200
我需要能够从名称中删除 PRE 计数不 >=3 或 POST 不 >=3 的值。这意味着将此逻辑应用于上面的 df 后,仅存在名称 789。 123 有 3 个 PRE 周期,但只有 1 个 POST,因此不包括在内。
预期输出:
Name Letter Period Amount
789 J PRE 8
789 J PRE 17
789 J PRE 11
789 J DURING 9
789 J POST 201
789 J POST 202
789 J POST 200
最佳答案
尝试使用过滤器
out = df.groupby('Name').filter(lambda x : (x['Period'].eq('PRE').sum()>=3) &
(x['Period'].eq('POST').sum()>=3))
Name Letter Period Amount
8 789 J PRE 8
9 789 J PRE 17
10 789 J PRE 11
11 789 J DURING 9
12 789 J POST 201
13 789 J POST 202
14 789 J POST 200
关于python - 如何标记 pandas 中不符合单独列的特定标准的组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65661096/