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