当前位置: 首页 > 知识库问答 >
问题:

不处理CSV中的第一行[重复]

帅博远
2023-03-14

在下面的代码中,如何避免处理print int(value)-int(dict2[key])的第一行?

file1 = open("file1.csv", "r")
file2 = open("file2.csv", "r")

csv_reader1 = csv.reader(file1)
csv_reader2 = csv.reader(file2)

dict1 = {}
for row in csv_reader1:
    dict1[row[0],row[1]] = row[2]
dict2 = {}
for row in csv_reader2:
    dict2[row[0],row[1]] = row[3]

for key, value in dict1.iteritems():
    print key, value

for key, value in dict2.iteritems():
    print key, value

for key, value in dict1.iteritems():
    if key in dict2.keys():
        print int(value) - int(dict2[key]) 

file1.csv是:

name, last_name, age, city, birthday, date
mona, jalal, 28, Madison, 7/23/1987, 5/31/2016
james, cardel, 29, DC, 7/23/1986, 5/1/2016
kate, spade, 30, NYC, 7/32/1985, 5/24/2016

而file2.csv是:

name, last_name, pet, pet_age
mona, jalal, cat, 2
kate, spade, dog, 3
mina, nik anjam, bird, 1

我试图减去人和他/她的宠物的年龄,如果它出现在两个CSV中,但我得到以下错误,因为它也处理第一行:

Traceback (most recent call last):
26
  File "/Users/mona/PycharmProjects/PythonCodes/CSV_calculation.py", line 27, in <module>
27
    print( int(value) - int(dict2[key]) )
ValueError: invalid literal for int() with base 10: 'age'

Process finished with exit code 1

共有2个答案

濮升
2023-03-14

跳过第一行:

csv_reader1 = csv.reader(file1)
next(csv_reader1) # skip 1st row
csv_reader2 = csv.reader(file2)
next(csv_reader2) # skip 1st row
黄隐水
2023-03-14

要跳过第一行,请使用next(),然后继续您的代码

next(csv_reader1, None)

这是对这个问题的愚弄

 类似资料:
  • 我想从CSV文件中删除包含错误日期的行。在这个过程中,CSV文件应该保留头行。所有这些我都希望使用Java8 Streams来执行。 一开始我想到了这个:

  • 有人知道有没有办法在Spring重新开始吗?我希望它首先从第一步开始,然后是第二步,第三步,然后回到第一步,第二步,第三步,等等,直到满足条件。我试着用谷歌搜索,但没有找到任何具体的例子。 迄今为止的代码:

  • 我是PowerShell的新手。我正在尝试创建一个脚本,它将通过CSV和Active Directory组进行查看。如果用户不在CSV中,我想删除该用户(当前正在使用写输出进行测试)。我必须使用UserPrincipalName。我的CSV只是 排名,编号 某物,3333//此用户是AD GROUP 某物,2222//此用户不在AD组中 目前,我想让它只输出3333,但它两者都输出。 导入模块活动

  • 问题内容: 我要Python从一列CSV数据中打印最少的数字,但是第一行是列号,我不希望Python将第一行考虑在内。如何确定Python忽略第一行? 到目前为止,这是代码: 你还能解释你在做什么,而不仅仅是给出代码吗?我对Python非常陌生,并希望确保我了解所有内容。 问题答案: 你可以使用模块类的实例来推断CSV文件的格式,并检测是否存在标头行以及仅在必要时才跳过第一行的内置函数: 由于在你

  • 我要求Python从CSV数据列中打印最小数量,但最上面的行是列号,我不希望Python考虑最上面的行。我如何确保Python忽略第一行? 这是目前为止的代码: 你能解释一下你在做什么,而不仅仅是给出代码吗?我对Python非常陌生,希望确保我了解所有内容。

  • 是否可以忽略或跳过CSV文件中带有的第一行? 我试图读取和过滤只包含单词的第7行,但是因为过滤器一直在读取标题,它会弄乱下面的行。 我想因为它找不到芹菜,所以它就切断了下面的线?