python - 如何标记 pandas 中不符合单独列的特定标准的组?

标签 python pandas dataframe

我有一个看起来像这样的 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/

相关文章:

python - 用户警告 : Discrepancy between trainable weights and collected trainable weights error

python - 请求(由于 SSL 模块不可用,由 SSLError ("Can' t 连接到 HTTPS URL 引起。”)PyCharm 请求网站中的错误

python - Pandas 拆分和追加

python - 计算 Pandas 中每列的唯一符号

python - 如何使用远程api在docker容器中挂载本地主机目录

python - Django,如何在管理界面中查看 session 数据

python - 将多列组合为单个日期时间的最佳方法是什么

python - 根据条件拆分列值

performance - 为什么要使用 DataFrame.select 而不是 DataFrame.rdd.map (反之亦然)?

python - 在 python pandas 中搜索整行 Dataframe 的多个字符串值