我正在尝试删除有错误但一行中的值未知的行。
我的数据框看起来像这样
'size' : ['small', 'small', 'medium','small','small'],
'length': [38, 62, 55,33,22],
'kinds' : ["A","#$" ,"B","C","A"]}
我想删除具有错误值的行。如果值不包含,则该值是错误的任何种类的值
kinds=["A","B","C"]
我尝试过这样的事情
df[df["kinds"].contains(kinds)]
但是我不能使用contains ..
我该怎么办?
您应该删除低计数的离群分类值:
for name in df.columns:
if df[name].dtypes == 'O':
s = df[name].value_counts()
df = df[df.isin(s.index[s >= 3]).values] # 3 value that proper for action.
如果是数字值,则应应用离群分析。您还可以根据需要将分类值更改为数字删除离群值,然后将数字转换为分类值。
newdf = df[df['kinds'].isin(kinds)]
您只想检查列中的值是否在列表中。