Python:比较两个CSV列表

神枪手

我正在尝试比较两个csv文件并通过它们搜索以找到特定的值。下面的例子。


文件一

名字,姓氏,年龄

约翰(Doe),45岁

珍妮(Doe),34岁

罗伯特·斯密特,27岁

鲍勃,怀特,56

卡里,伍兹,28


文件二

罗伯特


脚本应使用File Two的FirstName列在File One的FirstName列中进行搜索并返回年龄

结果罗伯特,27珍妮,34

我的代码仅输出Robert,27,它不会继续搜索Jane的第二行。我尝试使用While循环没有成功。任何帮助将不胜感激!谢谢!

仅供参考,我将通过一个超过1万行的文件搜索50多个项目。

下面的代码:

import csv

FileOne = open('/FileOne')
FileOneReader = csv.DictReader(FileOne)

FileTwo = open('/FileTwo')
FileTwoReader = csv.DictReader(FileTwo)


for row in FileTwoReader:
    for row2 in FileOneReader:
        if row['FirstName'].lower() in row2['FirstName'].lower():
            print 'Name:' + row['FirstName'] + ' Age: ' +   row2['Age'].lower()
阿卜杜

第二个不打印的原因是因为您正在第一次迭代中读取整个csv.DictReader对象(是iterator)。在第二次迭代中,您的一个iterators已经用尽,因此不会返回任何内容。

您应该将数据保存在列表中,然后以这种方式进行检查。这是一个指南:

# Use with statements whenever you're working with more than one file
with open('full_names.csv') as fileone, open('first_names.csv') as filetwo:
    full_table = list(csv.DictReader(fileone))
    small_table = list(csv.DictReader(filetwo))
    for row1 in full_table:
        for row2 in small_table:
            if row2['FirstName'].lower() == row1['FirstName'].lower():
                print('Name: ' + row2['FirstName'] + ', Age: '+ row1['Age'].lower())

这应该产生:

# Name: Jane, Age: 34
# Name: Robert, Age: 27

full_names.csv包含:

FirstName,LastName,Age
John,Doe,45
Jane,Doe,34
Robert,Smite,27
Bob,White,56
Cary,Woods,28

first_names.csv包含:

FirstName
Robert
Jane

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

两个列表的Python比较

来自分类Dev

Python中的两个列表比较

来自分类Dev

Python:如何比较两个列表

来自分类Dev

python - 比较两个列表

来自分类Dev

在Python中比较两个CSV

来自分类Dev

比较python中的两个大列表

来自分类Dev

两个列表,在python中更快的比较

来自分类Dev

Python-使用字典比较两个列表

来自分类Dev

比较python中两个列表的最佳算法

来自分类Dev

比较两个自定义列表python

来自分类Dev

如何比较两个列表中的项目Python 3.3

来自分类Dev

如何在python中比较两个列表

来自分类Dev

比较Python中的两个未知列表

来自分类Dev

在Python中使用Zip函数比较两个列表

来自分类Dev

如何在python中迭代比较两个列表?

来自分类Dev

比较python中的两个大列表

来自分类Dev

比较Python中两个包含数组的列表

来自分类Dev

比较python中的两个列表并打印差异

来自分类Dev

如何在Python中比较两个以上的列表?

来自分类Dev

比较python中的两个变量列表

来自分类Dev

比较基于python的两个元组列表

来自分类Dev

Python - 比较两个列表以找到计数

来自分类Dev

比较python 2中的两个dicts列表

来自分类Dev

使用 Python 比较两个布尔列表

来自分类Dev

Python - 比较两个列表时出现循环问题

来自分类Dev

比较两个CSV文件并打印不同Python的行

来自分类Dev

比较两个CSV文件并查找匹配的Python

来自分类Dev

在Python中比较两个csv文件

来自分类Dev

比较两个csv文件以输出匹配的Python