gpt4 book ai didi

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

转载 作者:太空宇宙 更新时间:2023-11-03 20:17:27 25 4
gpt4 key购买 nike

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

2)比较后,如何将第5列中相同ID的第6列中的值相加?

SAMPLE CONTENT OF CSV FILE 2

SAMPLE CONTENT OF CSV FILE 1

例如

第 5 列第 6 列

约翰 $15050

约翰 $36501

5月2000美元

蒂姆25美元

输出:

第 5 列第 6 列

约翰 $51551

5月2000美元

蒂姆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 电梯私有(private)有限公司', '1134988')

('9G 电梯私有(private)有限公司', '376703.88')

('9G 电梯私有(private)有限公司', '910788')

('9G 电梯私有(private)有限公司', '504948')

('9G 电梯私有(private)有限公司', '40000')

('9G 电梯私有(private)有限公司', '6184')

('9G 电梯私有(private)有限公司', '1134988')

('9G 电梯私有(private)有限公司', '376703.88')

('9G 电梯私有(private)有限公司', '910788')

('9G 电梯私有(private)有限公司', '504948')

预期输出

('9G 电梯私有(private)有限公司', '5901039.76')

最佳答案

为了求和财务数字,我宁愿使用 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
]
)
)

关于python - 如何比较 2 个不同 csv 文件中不同列的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58361406/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com