为了账号安全,请及时绑定邮箱和手机立即绑定

如何删除所有值为 0 的行而忽略第 n 个单元格?

如何删除所有值为 0 的行而忽略第 n 个单元格?

慕尼黑8549860 2022-12-06 14:52:47
我知道如何删除数据框中所有值为 0 的行。但是如果我想在检查该条件时忽略第 n 个(下例中的第一个)单元格,我找不到解决方案。在:   0  title1  title2 title3cat1  0        0       1cat2  1        0       0cat3  1        0       1出去:   0  title1  title2 title3cat1  0        0       1cat3  1        0       1我想删除 cat2 行,即使第一个单元格不为零。
查看完整描述

1 回答

?
MMTTMM

TA贡献1869条经验 获得超4个赞

选择所有没有第一个 by 的列DataFrame.iloc,检查是否不等于with0以测试每行是否至少有一个:DataFrame.neDataFrame.anyTrue

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




查看完整回答
反对 回复 2022-12-06
  • 1 回答
  • 0 关注
  • 72 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信