我非常擅长编程和使用python。 我有一个20 x的CSV文件,并且具有各种概率值。看起来会像这样:
A B C D E
1 2 3 4 5
6 7 8 9 10
11 12 13 14 ...
我有一个20 x 1的第二个CSV文件看起来像这样(我可以改变第二个以适应我必须做的没有问题,但第一个我不能):
A B C D E
1 2 3 4 5
现在我需要做的是读取第一个CSV文件的每一行提取值并将其与受尊重的列相乘。并向他们取每行并找到行的总和。所以我希望输出为: 第一个如下
A B C D E
1x1 2x2 3x3 4x4 5x5
6x1 7x2 8x3 9x4 ...
最终结果是:
55
130
...
任何和所有的建议都会被贬低。 谢谢
答案 0 :(得分:2)
以下是展示使用csv
的一种方式。它重复而冗长,希望能给你一些研究和测试的东西。
#!/usr/bin/python
import csv
import re
file2_list = []
with open('2.csv', 'r') as fh2:
reader = csv.reader(fh2)
for row in reader:
if re.search(r'\d', row[0]):
file2_list = row
break
with open('1.csv', 'r') as fh1:
reader = csv.reader(fh1)
for row in reader:
if not re.search(r'[^\d]', row[0]):
result = []
for i,v in enumerate(row):
result.append(int(v) * int(file2_list[i]))
print(sum(result))
输入文件1:
a,b,c,d,e,f,g,h,i,j
1,2,3,4,5,6,7,8,9,10
11,12,13,14,15,16,17,18,19,20
输入文件2:
a,b,c,d,e,f,g,h,i,j
5,10,15,20,25,30,35,40,45,50
输出:
1925
4675
答案 1 :(得分:0)
你可以使用Pythons csv模块来读取csv文件,它记录在:
https://docs.python.org/2/library/csv.html#module-csv
要执行计算,如果您有大量数据,请使用numpy,因为它很快。 您正在计算的数字是您的多行表的每一行的内积,其中包含您的一行表中的唯一一行,即i.p.以下是:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.inner.html