python - 如何删除所有值为 0 的行,忽略第 n 个单元格?
问题描述
我知道如何删除数据框中所有值为 0 的行。但如果我想在检查该条件时忽略第 n 个(下例中的第一个)单元格,我无法找到解决方案。
在:
0 title1 title2 title3
cat1 0 0 1
cat2 1 0 0
cat3 1 0 1
出去:
0 title1 title2 title3
cat1 0 0 1
cat3 1 0 1
即使第一个单元格不为零,我也想删除 cat2 行。
谢谢你
解决方案
选择没有第一个 by 的所有列DataFrame.iloc
,检查是否不等于with0
以测试每行是否至少有一个s:DataFrame.ne
DataFrame.any
True
df = df[df.iloc[:, 1:].ne(0).any(axis=1)]
print (df)
title1 title2 title3
cat1 0 0 1
cat3 1 0 1
详情:
print (df.iloc[:, 1:])
title2 title3
cat1 0 1
cat2 0 0
cat3 0 1
或者,如果想要忽略nth
列,则此列是可能的drop
:
#python count from 0, so for first column is used 0
i = 0
df = df[df.drop(df.columns[i], axis=1).ne(0).any(axis=1)]
print (df)
title1 title2 title3
cat1 0 0 1
cat3 1 0 1
详情:
i = 0
print (df.columns[i])
title1
print (df.drop(df.columns[i], axis=1))
title2 title3
cat1 0 1
cat2 0 0
cat3 0 1
推荐阅读
- json - Angular 4 Restful Post 响应,带有“SyntaxError:JSON.parse 处的 JSON 输入意外结束”
- javascript - ImportJson 函数检索不同位置的列
- python-2.7 - 子集和改进
- python - 如何在python3的列表中相互比较值(不重复)
- microsoft-edge - 检测边缘亮/暗主题变化
- c - 我在 matmul 函数上使用了 openMP 指令,但它不起作用
- google-apps-script - 打开复制的谷歌幻灯片文件
- mongodb - MongoDB 中的全文搜索未产生“@@@”的预期结果
- java - 自定义约束验证器注释未执行
- linux - 使用 Visual Studio 2017 和 CMake 面向 Linux