我有一个CSV文件,其中包含一列(column1)。我想检查单元格中的元素是否重复以及重复多少次(occcurance_count),然后使用Python在同一CSV文件中打印出现次数。 在下面的示例中,“ 241682-27638-USD-OCOF”没有重复,因此计数为1,“ 241942-37190-USD- DIV”重复了两次,因此计数为2,依此类推。
想要以下CSV格式的输出
column1 ,occcurance_count 1682-27638-USD-OGGCOF ,1 241682-27638-USD-OGGINT ,1 241682-27638-USD-CIGGNT ,1 241682-27638-USD-OCGGINT ,1 241942-37190-USD-GGDIV ,2 241942-37190-USD-CHYOF ,1 241942-37190-USD-EQPL ,1 241942-37190-USD-INT ,1 242066-15343-USD-CYJOF ,3 242066-15343-USD-CYJOF ,3 242066-15343-USD-CYJOF ,3 242066-15343-USD-ETHQPL ,1 242066-15343-USD-INFRT ,1 241942-37190-USD-GGDIV ,2 242066-33492-USD-CJHOF ,1
我认为以下是您正在寻找的代码。逻辑很简单,但也更长。关于逻辑的解释:首先,您需要打开csv文件进行读取并列出列表中的所有元素,然后使用列表计数方法找出每个列表项的出现次数,打开新的csv文件并写入项目并为每个项目计数。
当然可以有一种优化方法来完成相同的事情,但是这里的代码很快就会出现。
import csv import sys try : fr = open("mycsv.csv") fw = open("mscsv_counter.csv", "w") except: print "Couldn't open the file" reader = csv.reader(fr) counterlist = list() for row in reader : # print row if len(row) > 0 : counterlist.append(row[0]) #for item in counterlist : # print counterlist.count(item) writer = csv.writer(fw) data = ["column 1", "counter"] writer.writerow(data) for item in counterlist : rowdata = [item, counterlist.count(item)] # print rowdata writer.writerow(rowdata) fr.close(); fw.close();