[英]Extract Values from CSV file to then multiply with values from other CSV? Python
我是編程和使用python的新手。 我有一個x等於20的CSV文件,並且具有多種概率值。 它看起來像這樣:
A B C D E
1 2 3 4 5
6 7 8 9 10
11 12 13 14 ...
而且我還有第二個CSV文件,它是20乘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
...
任何和所有建議將不勝感激。 謝謝
這是演示使用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
您可以使用Python的csv模塊讀取csv文件,該文件記錄在:
https://docs.python.org/2/library/csv.html#module-csv
要執行計算,請使用numpy(如果有很多數據),因為它速度很快。 您正在計算的數字是多行表每一行與一行表中唯一一行的內積,ip記錄在:
http://docs.scipy.org/doc/numpy/reference/generated/numpy.inner.html
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.