私は銀行の明細書を見て、落ち込んだ月に応じて経費/収入をバケットに集計するコードを書いています。データはCSV形式で読み込まれています文字列のエントリとして。 csvファイルには、カラム1は日付、費用は4、費用は5、収入は5です。Python 3:結果を辞書に集計する方法
コードが必要です。
- は、CSVから日付文字列に月調べなさい。
- 費用/所得をそれぞれの辞書に追加します。
経費(形式: "$ 0.00")をフロートに変換して辞書に集計しようとしました。誰でも私がここで何ができるのか教えていただけますか?ここで
はコードです:
import numpy as np
import csv
import timestring as ts
months= [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12]
expenses = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0}
income = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0, 7:0, 8:0, 9:0, 10:0, 11:0, 12:0}
exp_cat = []
income_cat = []
files =['export.csv', 'export1.csv']
with open("budgetfile.csv","wt") as fw:
writer = csv.writer(fw)
for file in files:
with open(file) as csvfile:
records = csv.reader(csvfile, quoting=csv.QUOTE_NONE)
print("Processing file {}. \n" .format(file))
header = next(records)
for row in records:
try:
expenses[ts.Date(row[0]).month] += float(row[4])
income[ts.Date(row[0]).month] += float(row[5])
break
except ValueError:
pass
を試してみてください。問題点をより詳しく記述してください。コードがエラーをスローしますか?どちら?どこ? –
お金には 'float'を使わないでください。 decimal.Decimal( '$ 33.50'.replace(' $ '、' ')) ' –
私が記述したことを意味しています:列4を辞書に集計することはできません文字列は数字に変換されないためです。エラーはありません。 – Chuck