我正在尝试使用 Python 来解析一个逗号分隔的文件,其布局与此类似:
AccountNumber,Invoice_Number,Gross_Amt,Adjustments,TotalDue
"234","56787","19.37",,"19.37"
"234","56788","204.76","-10.00","194.76"
"234","56789","139.77",,"139.77"
"567","12543","44.89","30.00","74.89"
我想要完成的是合计总金额、调整和总应付金额,然后将它们添加到每行的末尾(或仅添加到每个文档的最后一行)。
我的问题是如何创建一个变量,只要帐号相同就只添加字段?例如用英语我会说:
检查帐号:当帐号等于上一行的帐号时,在每一行添加 Gross_amt,然后当帐号更改时,将 gross_amt 字段的总和作为新字段追加到最后一行的末尾帐户为 Gross_Amt_Total。重新开始。
最佳答案
你可以使用 itertools.groupby()
:
import csv
from itertools import groupby
from operator import itemgetter
with open("data.csv", "rb") as f:
next(f) # Skip header
for account, lines in groupby(csv.reader(f), itemgetter(0)):
gross_amount = 0.
for line in lines:
print line
gross_amount += float(line[2])
print "The total gross amount for account", account, "is", gross_amount
关于python - 使用 Python 解析逗号分隔文件并添加货币字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4986523/