当前位置: 首页 > 面试题库 >

Python-处理CSV数据时如何忽略第一行数据?

盖诚
2023-03-14
问题内容

我要Python从一列CSV数据中打印最少的数字,但是第一行是列号,我不希望Python将第一行考虑在内。如何确定Python忽略第一行?

到目前为止,这是代码:

import csv

with open('all16.csv', 'rb') as inf:
    incsv = csv.reader(inf)
    column = 1                
    datatype = float          
    data = (datatype(column) for row in incsv)   
    least_value = min(data)

print least_value

你还能解释你在做什么,而不仅仅是给出代码吗?我对Python非常陌生,并希望确保我了解所有内容。


问题答案:

你可以使用csv模块Sniffer类的实例来推断CSV文件的格式,并检测是否存在标头行以及next()仅在必要时才跳过第一行的内置函数:

import csv

with open('all16.csv', 'r', newline='') as file:
    has_header = csv.Sniffer().has_header(file.read(1024))
    file.seek(0)  # Rewind.
    reader = csv.reader(file)
    if has_header:
        next(reader)  # Skip header row.
    column = 1
    datatype = float
    data = (datatype(row[column]) for row in reader)
    least_value = min(data)

print(least_value)

由于在你的示例中datatype和column都进行了硬编码,因此这样处理起来会稍快一些row:

    data = (float(row[1]) for row in reader)

注意:上面的代码适用于Python3.x。对于Python 2.x,使用以下行来打开文件而不是显示的内容:

with open('all16.csv', 'rb') as file:


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

  • 问题内容: 我正在使用python csv阅读器。我如何以忽略空白行的方式使用以下代码。 问题答案: 如果您的csv文件以空行开头,我认为您应该能够在创建csv阅读器之前跳过该行:

  • 问题内容: 我有一个文本文件,内容为: 我已经了解了所有内容,并且一切运行正常,但事实是它读取了第一行,这是.txt文件的一种图例,必须将其忽略。 如何使用Scanner类忽略第一行? 问题答案: 在进行任何处理之前,只需调用一次scan.nextLine()即可解决问题。

  • 用户勾选某一个分类,一次性查询该分类里的所有商品信息,并创建价格任务。 业务员在价格操作的时候,对刚才创建的所有商品信息进行价格操作,根据基准价做涨幅,每个商品都有不同的基准价,现在的问题就是数据量太大,如果一次性操作一万条商品数据,还要根据基准价做涨幅,有什么好的方法?前端如果展示的话,每条商品的涨幅后价格都要显示,请问该怎么操作比较好,后端这边应该怎么进行处理大批量的数据?

  • (自己模拟的数据效果) 如上路径动画,目前的问题是运行的坐标数据是依照地图来的 需要转换为画布能够展示的范围,但运行数据之前差别大部分情况下都很小 我要怎样处理会合适一点? help大佬们