Python,在column1中过滤csv以获得唯一值并返回

Python,在column1中过滤csv以获得唯一值并返回,python,csv,sorting,python-2.x,Python,Csv,Sorting,Python 2.x,我使用python(2.6.9)将Oracle数据库中的数据提取到.CSV文件中(以避免元组) 在.CSV中,我有两列没有标题的数据 第1列包含产品编号。 第2列包含产品的存储位置 .CSV文件中的示例代码段: 60139420 1011011990042 60139420 1013071990182 60139421 1009041990122 60139421 1007091990161 60144228 1014101990542 60160281 10

我使用python(2.6.9)将Oracle数据库中的数据提取到.CSV文件中(以避免元组)

在.CSV中,我有两列没有标题的数据

第1列包含产品编号。 第2列包含产品的存储位置

.CSV文件中的示例代码段:

60139420    1011011990042
60139420    1013071990182
60139421    1009041990122
60139421    1007091990161
60144228    1014101990542
60160281    1003091990212
60181944    1006021990541
我想要实现的是过滤第1列,找到所有唯一的值(其中产品编号只出现一次),并返回这些值,但也从第2列返回相应的位置

因此,从上述示例中,我希望输出为:

60144228    1014101990542
60160281    1003091990212
60181944    1006021990541
因为这三种产品都是独一无二的

这些值可以附加到另一个变量/数组

事实上,我对Python还很陌生。我已经查看了stackoverflow和其他在线资源,以获取示例/帮助,但要么无法理解我找到的内容,要么无法找到我需要的内容

这就引出了我的第一个问题

这是到目前为止我的代码

import cx_Oracle
import csv

conn = cx_Oracle.connect("some db credentials")

c = conn.cursor()
sql = ('''some sql query''')
c.execute(sql)

results = c.fetchall()

with open("test_file.csv", "w") as file:
    for row in results:
        csv.writer(file).writerow(row)

c.close()
conn.close()
如果有一种方法可以使用我的代码来实现这一点,或者有一种更好的方法来实现这一点,那么任何帮助都将不胜感激

提前谢谢你

熊猫有一个数据帧函数,该函数采用
keep=False
参数。因此,您应该能够执行类似于
df=df.drop_duplicates(keep=False)
的操作,以获得所需的内容

没有熊猫,你可以这样做:

导入csv
计数={}
将open('output.csv','w',newline='')作为csvfile:
writer=csv.writer(csvfile,分隔符='\t')
对于结果中的行:
产品数量=行[0]
counts[prod_num]=counts.setdefault(prod_num,0)+1
对于结果中的行:
产品数量=行[0]
如果计数[prod_num]==1:
writer.writerow(行)

我将对结果进行两次检查:第一次计算每个产品编号的出现次数,第二次仅输出产品编号恰好出现一次的行。

为此干杯,我将查看pandas文档。酷,请告诉我任何其他问题!如果它对您有效,如果您接受答案,我将不胜感激:)客户端有一个关闭的服务器,因此我将在返回轮班时为熊猫等找到一个解决方法。我只是好奇。。。你知道一种不用熊猫就能得到同样结果的方法吗?@theBerry啊,明白了。我刚刚更新了我的答案,在没有熊猫的情况下也能达到同样的效果。我刚刚尝试了“没有熊猫”的答案,效果很好!我必须通读代码才能完全理解每一步,我得到了大致的情况。谢谢你的帮助!!:)