首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何比较2个不同csv文件中不同列的值?

如何比较2个不同csv文件中不同列的值?
EN

Stack Overflow用户
提问于 2019-10-13 15:21:35
回答 1查看 45关注 0票数 1

1)如何将csv1中column1中的值与csv2中的第5列进行比较?

2)对比后,如何将同一ID的第6列的值的总和相加到第5列?

SAMPLE CONTENT OF CSV FILE 2

SAMPLE CONTENT OF CSV FILE 1

例如。

第5列第6列

约翰:15050美元

约翰:36501美元

五月$2000

tim $25

输出:

第5列第6列

约翰:51551美元

五月$2000

tim $25

到目前为止,我的代码如下:

代码语言:javascript
复制
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')

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-13 16:04:47

为了对财务数字求和,我宁愿使用Decimal而不是float。这样你会得到更好的精度。

这是我的示例解决方案,试一下。希望它能有所帮助:

代码语言:javascript
复制
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
            ]
        )
    )
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58361406

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档