これを Python でまとめる方法についてロジックを再確認したいので、例を示していただければ幸いです。
2 つの CSV ファイル (2 行 6 列でまったく同じ形式) を比較し、違いを提供する必要があります。
行 2 の列 2 ~ 6 を特定の値 (5) で乗算して乗算し、それらを別々に合計してから、互いに比較し (CSV2 合計/CSV1 合計)、パーセンテージ形式で表示する必要があります。
import csv と reader は進むべき道のように思えますが、私にとってトリッキーな部分は、異なる値に対して乗算できるリストにそれを引き込み (またはコレクションを使用する必要がありますか?)、2 つを最も簡潔に比較することです/効率的な方法。
コードの更新 (2 番目の回答に基づく - すばらしい、ありがとう! しかし、行の値の整数を呼び出すとエラーが発生しました):
import csv
file1 = open('csv1.csv', 'rb')
csv1 = csv.DictReader(file1)
file2 = open('csv2.csv', 'rb')
csv2 = csv.DictReader(file2)
myList = csv2.fieldnames
myList.append('Difference')
outFile = open('outFilename.csv', 'wb')
outCsv = csv.DictWriter(outFile, myList)
file1Dict = dict()
file2Dict = dict()
for row in file1:
file1Dict[row['key value']]['Total1'] = {'Total1':(int(row[1]) * .75 + int(row[2]) * 2.25 + int(row[3]) * 3.5 + int(row[4]) * 5 + int(row[5]) * 25)}
for row in file2:
file2Dict[row['key value']]['Total2'] = {'Total2':(int(row[1]) * .75, int(row[2]) * 2.25, int(row[3]) * 3.5, int(row[4]) * 5, int(row[5]) * 25)}
outFile.writeheader()
for stuff in file1Dict:
file1Dict[stuff]['Difference'] = str(int(int(file1Dict[stuff]['Total2']) / int(file1Dict[stuff]['Total1'])) * 100) + '\%'
outFile.writerow(file1Dict[stuff])
print 'difference'