小编典典

如何使用Python在同一CSV文件中打印某些字符串的占用率?

python

我有一个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

阅读 249

收藏
2021-01-20

共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();
2021-01-20