2016-12-08 23 views
0

私は以下のデータを持つcsvファイルを持っていますが、Qty列の値に平均コスト列を乗算して値を合計する方法を知りたいと思います。Pythonでcsvファイルから値を掛けて加算する

| 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  | 
+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)) 
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) 
+0

これは[csvファイルを扱うためのひどい方法です](https://docs.python.org/3/library/csv.html) –

+0

@ Wayne:私は非常に大きなファイル(200 MB以上のサイズ)をこのコードで置き換えます。問題は見つかりませんでしたし、シンプルで高速でした。 – Suman

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 
関連する問題