[英]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.