簡體   English   中英

如何在python中使用CSV文件的第一行創建列表

[英]How to create list using first row of CSV file in python

我正在嘗試使用python在csv文件的第一行-列標題中創建一個列表。 我整理了這個小腳本,但它打印了兩個不同的列表。 打印的第一項是csv的第一行,第二項打印在第二行。

我究竟做錯了什么?

import csv
import sys

with open('agentsFullOutput.csv') as csvFile:
    reader = csv.reader(csvFile)
    print csvFile.next()
    field_names_list = []
    field_names_list = csvFile.next()
    print field_names_list

每次調用.next()它將移至文件的下一行。 因此,您只會在第一個.next()調用中獲得CSV文件的標題:

import csv

with open('agentsFullOutput.csv') as csvFile:
    reader = csv.reader(csvFile)
    field_names_list = reader.next()

任何后續的.next()調用都將讀取文件中的下一行,因此將是一行數據。

每次調用next() ,都會yielded文件的下一行,直到到達文件末尾。

在您的代碼示例中,由於您兩次調用next() ,並且在第二次調用中將其分配給field_name_list ,所以它將分配第二行,而不是第一行。

下面將第一行分配給變量field_names_list

with open('agentsFullOutput.csv') as csvFile:
    reader = csv.reader(csvFile)
    field_names_list = next(reader)

使用next(reader)而不是reader.next()意味着代碼可移植到reader.next() 。在3+系列中,為了保持一致性,迭代器的next()方法已重命名為__next__()

您可以使用Pandas庫從龐大的數據集中讀取前幾行。

import pandas as pd
data = pd.read_csv("names.csv", nrows=1)

您可以在nrows參數中提及要讀取的行數。

        with open(__csvfile) as csvFile:
            reader = csv.DictReader(csvFile)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM