python - Pandas :删除值等于零的行

标签 python pandas

如果此命令的结果是 >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

关于python - Pandas :删除值等于零的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69900843/

相关文章:

python - 将小部件的引用传递给函数

python - 如何将数据框从水平转换为垂直

pandas - 根据条件突出显示行

python - pandas str.split给我一个意想不到的语法错误

python - POST API 可浏览 View 中未出现字段 - django Rest Framework

python - 在列表中搜索字符或字符串(如网站上的查找功能)

python - 只有 CPU 的 pytorch 崩溃并出现错误 AssertionError : Torch not compiled with CUDA enabled

python - Statsmodels arima 模型返回错误

python - 在 Pandas DataFrame 中查找第一列匹配条件的矢量化方法

python-2.7 - Pandas Dataframe ValueError : Shape of passed values is (X, ),索引意味着 (X, Y)