按列读取csv文件

时间:2015-06-09 13:49:56

标签: python csv multiple-columns

我有一个代码来按行读取csv文件

import csv

with open('example.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    for row in readCSV:
        print(row)
        print(row[0])

但我只想选择哪些专栏可以让任何人给我一个脚本?

4 个答案:

答案 0 :(得分:1)

import csv

with open('example.csv') as csvfile:
    readCSV = csv.reader(csvfile, delimiter=',')
    column_one = [row[0] for row in readCSV ]

将为您提供第一列中的值列表。话虽这么说 - 无论如何你必须阅读整个文件。

答案 1 :(得分:0)

你不能这样做,因为文件是逐字节写入你的文件系统的。要知道一行结束的位置,您必须读取所有行以检测是否存在换行符。 CSV中无法解决这个问题。

因此您必须阅读所有文件 - 但您可以选择要保留的每一行的哪些部分。

答案 2 :(得分:0)

我肯定会使用pandas

然而,在普通的python中这是一种方法。

在这个例子中,我正在提取第3行第4列的内容。

import csv

target_row = 3
target_col = 4

with open('yourfile.csv', 'rb') as csvfile:
    reader = csv.reader(csvfile)
    n = 0
    for row in reader:
        if row == target_row:
            data = row.split()[target_col]
            break

print data

答案 3 :(得分:0)

read_csv模块中的

pandas可以加载columns的子集。 假设您只想在columns文件中加载1 3.csv

import pandas as pd

usecols = [1, 3]
df = pd.read_csv('example.csv',usecols=usecols, sep=',')

这是read_csv的Doc。 此外,如果您的文件很大,您可以通过在chucksize

中指定read_csv来逐个阅读该文件