python - 根据条件删除 pandas 数据框的行

标签 python pandas

我确信以前已经有人问过这个问题,但我无法以某种方式表达它,以便我找到类似的问题。我想做的是删除数据帧的行,其中删除具有相同项目名称且全部值为 0 的行。

例如。我的一栏是“项目名称”,另一栏是“值”。 “项目名称”可能会重复多次。我想检查每个“itemname”,如果所有其他同名项目的值为 0,则删除这些行

我知道这应该很简单,但我无法理解它。

为了更清楚,这里

    itemname value
0      a       0
1      b       100
2      c       0
3      a       0
4      b       75
5      c       90

由于所有 a 项的值为 0,因此应该删除它们。

    itemname value
1      b       100
2      c       0
3      b       75
4      c       90

希望这是有道理的。我检查是否有其他人问过类似的问题,但在这种情况下找不到任何内容。

最佳答案

用途:

df = df[df.groupby('itemname')['value'].transform('any')]
print (df)
  itemname  value
1        b    100
2        c      0
4        b     75
5        c     90

关于python - 根据条件删除 pandas 数据框的行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52593023/

相关文章:

python - 球坐标中的蒙特卡罗积分

python - alsamixer amixer 转 python 字典格式

Python:os.isfile() 和 os.listdir() 之间的分歧

python - 如何重新抽样 6 个月

python - Matplotlib:更改索引中某个点之后线条的颜色

python - 将字典的 numpy ndarray 转换为 DataFrame

python - 如何重载类成员的分配?

python - 使用 Python 文件从 Databricks 上的 Azure Artifacts 安装 Python 包

python - 将此数据读入 pandas 数据框的优雅方法?

python - 在Python中将对象数据类型的内容转换为日期数据类型