使用Pandas或csv python从csv中删除不明确的行

使用Pandas或csv python从csv中删除不明确的行,python,pandas,csv,python-3.5,Python,Pandas,Csv,Python 3.5,我已尝试使用以下代码从行中删除副本: import csv file_in = '1.csv' file_out = 'output_file.csv' with open(file_in, 'r',encoding="utf-16") as fin, open(file_out, 'w',encoding="utf-16") as fout: reader = csv.reader(fin) writer = csv.writer(fout) d = {} f

我已尝试使用以下代码从行中删除副本:

import csv

file_in = '1.csv'
file_out = 'output_file.csv'
with open(file_in, 'r',encoding="utf-16") as fin, open(file_out, 'w',encoding="utf-16") as fout:
    reader = csv.reader(fin)
    writer = csv.writer(fout)
    d = {}
    for row in reader:
        color = row[0]
        if color not in d:
            d[color] = row  
            writer.writerow(row)
这是我上面程序的输出文件:
以下是输入文件:

但有一个问题,我想我会得到过滤后的值,但逻辑只删除复制的行。请参见以下结果值:

对于相同的值,我在不同的行中得到是和否。这些值不明确

1   0   -1  -1  -1  -1  -1  -1  yes
1   0   -1  -1  -1  -1  -1  -1  no
1   0   1   1   1   -1  -1  -1  yes
1   0   1   1   1   -1  -1  -1  no
这些是模糊的值,对我的神经模型没有任何影响。这造成了模棱两可的局面

我愿意删除这些条目以及重复的行。我很愿意使用熊猫,但是我没有太多的知识。请帮助我删除csv中的重复行以及不明确的值


大多数情况下,除了最后一列可能有不同的值外,所有值都是相同的。

您可以使用非常方便的
pandas
功能删除重复项。假设您的csv文件名为
file.csv
。然后,您可以将数据加载到名为
df
的数据框中,并希望删除不包括最后一列的重复项

import pandas as pd

df = pd.read_csv('file.csv')    
drop_cols = df.columns[:-1]
df.drop_duplicates(subset=drop_cols, inplace=True)
编辑

如果您的csv文件没有标题,请将
pd.read\u csv('file.csv')
替换为

pd.read_csv('file.csv', header=None)

什么定义了“模糊值”?我在问题中已经提到了它。请检查问题,你已经发布了一些值,说它们是“模棱两可”的,但是你没有解释为什么你认为它们是SUK。好的。原因是,当我试图将它输入到我的脚本系统中,并在其中使用它进行决策时,这些值会做出错误的预测,这是不好的。我也想消除这样的争吵。从我的数据集。不工作。。我得到了错误,但这不是我期望的答案:
ValueError:没有足够的值来解包(预期为2,得到了0)
您能给我一些有关错误抛出位置的详细信息吗?在哪一行?更重要的是,这假设您的csv文件有标题。