簡體   English   中英

從CSV文件中提取值,然后與其他CSV中的值相乘? 蟒蛇

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM