从csv到列表计数列表的值

时间:2019-05-07 08:41:24

标签: python arrays csv

我正在尝试使用Python创建程序,我想要一个根据另一个表中的数据创建的表。 主表中的数据没有模式,它们是来自另一个表的值的计数。

例如,在(1,1)(行,列)下,数字为15,它是第二个表的第一列中存在的1的总数。第二个表的范围是1-5(行)和1-10(列),并且这些表存在于CSV文件中。

image representing the two tables

import numpy as np

RangeNumber = 10
abcde = []
counta = 0
countb = 0

with open('loto1_count.csv', 'w+') as f:
    readCSV = list(csv.reader(f, delimiter=';'))
    for a in range(1, RangeNumber - 4):
        for b in range(a + 1, RangeNumber - 3):
            for c in range(b + 1, RangeNumber - 2):
                for d in range(c + 1, RangeNumber - 1):
                    for e in range(d + 1, RangeNumber):
                        abcde = [a, b, c, d, e]
                        val = str(abcde)

                        array1 = np.asarray(val)

                        if a == 1:
                            counta += 1
                        elif a == 2:
                            countb += 1


                        f.write(val1)


l = len(array1)
print(abcde)            
print(counta)
print(countb)
f.close 

`

上面是我尝试创建数字总和的代码,但是长度随着计数的增加而增加,这会导致大量的变量和混乱。

预先感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

以下代码适合您:)

import csv
from collections import defaultdict

row= defaultdict(list)

filename = 'file.csv'
with open(filename, 'r') as csvf:
    read = csv.reader(csvf)
    read.__next__()
    for line in read:
        for i in range(len(line)):
            row[i].append(line[i])

filename= 'new_csv.csv'

with open(filename, 'w') as csvfw:
    writer= csv.writer(csvfw, lineterminator= '\n')    
    for j in range(10):
        row_=[]
        x= str(j+1)
        for i in range(5):
            row_.append(row[i].count(x))

        writer.writerow(row_)