我正在尝试使用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
`
上面是我尝试创建数字总和的代码,但是长度随着计数的增加而增加,这会导致大量的变量和混乱。
预先感谢您的帮助。
答案 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_)