我要删除代表不足的行。 我有一个数据框df:
classif ID img
Cat 50 matrix(100,100)
Cat 12 matrix(100,100)
Circle 36 matrix(100,100)
Tree 23 matrix(100,100)
...
我可以看到time=df.classif.value_counts()
我想找到至少出现50次的 classif 。
uu= df[df.classif.isin(time.index[time.values > 50])].classif.value_counts()
它将像这样返回一个数据帧DF2:
Index classif
cat 51
tree 150
所以这意味着我在数据框df中有51行带猫,有150行带树。
现在,我想从DF2中选择那些索引,并仅将 classif 在DF2索引中的行保留在DF中。
我已经做到了,但是没用:
for enough in uu.index.tolist():
h=df.loc[df.classif != enough]
我认为问题已经得到解答,但是我可以创建一个有效的代码...感谢您的帮助
答案 0 :(得分:1)
我刚刚找到了解决方法!
1 /将索引添加到df
df=df.set_index("classif",drop=False)
2 /使用放置
high_defect=df.drop(uu.index.tolist())