我知道如何删除所有值为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行,即使第一个单元格不为零。
谢谢
选择所有不带first by的列DataFrame.iloc
,检查是否与0
by相等,DataFrame.ne
以DataFrame.any
进行测试,True
每行至少一个s:
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
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句