繁体   English   中英

熊猫:删除值等于零的行

[英]pandas: remove row where value is equal to zero

我想如果这个命令的结果是 >1 项,那么删除带有零的行。

list_count = df.groupby(['id_client', 'date'])['count'].apply(list).reset_index()

结果示例上面的代码

我原来的 df 应该有:

908     01/2020     0
908     01/2020     35
907     01/2020     0
907     01/2020     37
909     01/2020     50
910     01/2020      0

上面代码行的结果

    908     01/2020     [0, 35] 
    907     01/2020     [0, 37]
    909     01/2020      50
    910     01/2020      0

预期产出

908     01/2020     35
907     01/2020     37
909     01/2020     50
910     01/2020      0

您可以计算两个掩码和切片:

# values where group has only 1 element
m1 = df.groupby(['id_client', 'date'])['count'].transform('size').eq(1)
# values ≠ 0
m2 = df['count'].ne(0)
# keep values that have either criterion
df[m1|m2]

输出:

   id_client     date  count
1        908  01/2020     35
3        907  01/2020     37
4        909  01/2020     50
5        910  01/2020      0

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM