在python中将csv文件中的值相乘并相加

时间:2016-12-08 04:31:17

标签: python-3.x csv

我有一个包含以下数据的csv文件,我想知道如何将Qty列中的值与Avg cost列相乘,然后将这些值相加。

| Instrument | Qty  | Avg cost  |
|------------|------|-----------|
| APLAPOLLO  | 1    | 878.2     |
| AVANTIFEED | 2    | 488.95    |
| BALAMINES  | 3    | 308.95    |
| BANCOINDIA | 5    | 195.2     |
| DCMSHRIRAM | 4    | 212.95    |
| GHCL       | 4    | 241.75    |
| GIPCL      | 9    | 102       |
| JAMNAAUTO  | 5    | 178.8     |
| JBCHEPHARM | 3    | 348.65    |
| KEI        | 8    | 121       |
| KPRMILL    | 2    | 592.65    |
| KRBL       | 3    | 274.45    |
| MPHASIS    | 2    | 519.75    |
| SHEMAROO   | 2    | 400       |
| VOLTAMP    | 1    | 924       |

3 个答案:

答案 0 :(得分:0)

试试这个:

f=open('yourfile.csv','r')

temp_sum=0

for line in f:

 word=line.split(',')

 temp_sum=temp_sum+float(word[1])*float(word[2])

print(temp_sum)

答案 1 :(得分:0)

import pandas
colnames = ['Qty', 'Avg_cost']
data = pandas.read_csv('test.csv', names=colnames) 
qty = data.Qty.tolist()
avg = data.Avg_cost.tolist()
mult = []
for i in range(0,len(qty)):
    temp = qty[i]*avg[i]
    mult.append(temp)
sum_all = sum(mul)
print sum_all
print mult

答案 2 :(得分:0)

我将文件保存为test.csv并执行以下操作

import csv
with open('/tmp/test.csv', 'r') as f:
    next(f) #skip first row
    total = sum(int(row[1]) * float(row[2]) for row in csv.reader(f))
    print('The total is {}'.format(total))