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

发布于 2021-01-29 15:01:30

我有一个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
关注者
0
被浏览
64
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    我认为以下是您正在寻找的代码。逻辑很简单,但也更长。关于逻辑的解释:首先,您需要打开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();
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看