我有一个csv文件,其中包含一个包含两列的大型数据集。我希望比较这两列的数据,如果存在重复的对,则将其删除。例如,如果我的数据文件如下所示:
Column A Column B
DIP-1N DIP-1N
DIP-2N DIP-3N
DIP-3N DIP-2N
DIP-4N DIP-5N
然后第一个条目被删除,因为我不想要两个“DIP-1 N”。而且,只要条目是唯一的,pair的出现顺序就不是问题。例如,这里DIP-2N & DIP-3 N和DIP-3 N & DIP-3 N是成对的。但是这两个条目的意思是一样的。所以我想保留一个条目,删除其余的。
我写了下面的代码,但是我不知道如何同时比较两列的条目。
import csv
import pandas as pd
file = pd.read_csv("/home/staph.csv")
for i in range(len(file['Column A'])):
for j in range(len(file['Column B'])):
list1 = []
list2 = []
list1.append(file[file['Column A'].str.contains('DIP-'+str(i)+'N')])
list2.append(file[file['Column B'].str.contains('DIP-'+str(i)+'N')])
for ele1,ele2 in list1,list2:
if(list1[ele1]==list2[ele2]):
print("Duplicate")
else:
print("The 1st element is :", ele1)
print("The 2nd element is :", ele2)
看起来好像有什么地方出错了,因为没有输出。程序只是结束了,没有任何输出或错误。如果我的代码是错误的,或者我能以更好的方式优化过程,任何帮助都将不胜感激。谢谢:)
2条答案
按热度按时间bmp9r5qi1#
这可能不是得到你所需要的最好的方法,但是,它很有效。
输出量:
| 索引|A列|B栏|
| - -|- -|- -|
| 一个|DIP-2N双列直插式|DIP-3 N双列直插式天线|
| 三个|双列直插式-4N| DIP-5 N双列直插式|
p3rjfoxz2#
经过一些调整,你可以使用Pandas方法: