1)如何将csv1中column1中的值与csv2中的第5列进行比较?
2)对比后,如何将同一ID的第6列的值的总和相加到第5列?
例如。
第5列第6列
约翰:15050美元
约翰:36501美元
五月$2000
tim $25
输出:
第5列第6列
约翰:51551美元
五月$2000
tim $25
到目前为止,我的代码如下:
import csv
cname = open('file1.csv')
companyName = csv.reader(cname)
for comname in companyName:
aname = open('file2.csv')
awardName = csv.reader(aname)
for awarname in awardName:
if comname[0] == awarname[5]:
print (awarname[5], awarname[6])
aname.close()
cname.close()输出
('9G电梯私人有限公司‘,'1134988')
('9G电梯私人有限公司‘,'376703.88')
('9G电梯私人有限公司‘,'910788')
('9G电梯私人有限公司‘,'504948')
('9G电梯私人有限公司‘,'40000')
('9G电梯私人有限公司‘,'6184')
('9G电梯私人有限公司‘,'1134988')
('9G电梯私人有限公司‘,'376703.88')
('9G电梯私人有限公司‘,'910788')
('9G电梯私人有限公司‘,'504948')
预期输出
('9G电梯私人有限公司‘,'5901039.76')
发布于 2019-10-13 16:04:47
为了对财务数字求和,我宁愿使用Decimal而不是float。这样你会得到更好的精度。
这是我的示例解决方案,试一下。希望它能有所帮助:
import csv
from decimal import Decimal
cname = open('file1.csv')
companyName = list(csv.reader(cname))
cname.close()
aname = open('file2.csv')
awardName = list(csv.reader(aname))
aname.close()
for comname in list(set([cn[0] for cn in companyName])):
print(
comname,
sum(
[
Decimal(item[6])
for item in awardName if item[5] == comname
]
)
)https://stackoverflow.com/questions/58361406
复制相似问题