用Python读取csv文件第i列的最佳方法是什么?

用Python读取csv文件第i列的最佳方法是什么?,python,r,python-2.7,csv,import-from-csv,Python,R,Python 2.7,Csv,Import From Csv,我已经习惯了R,它提供了一列一列读取CSV文件的快速功能,有人能提出一种快速和高效的方法来读取python中的大数据(例如CSV)文件吗?例如,CSV文件的第i列 我有以下几点,但这需要时间: import os,csv, numpy, scipy from numpy import * f= open('some.csv', 'rb') reader = csv.reader(f, delimiter=',') header = reader.next

我已经习惯了R,它提供了一列一列读取CSV文件的快速功能,有人能提出一种快速和高效的方法来读取python中的大数据(例如CSV)文件吗?例如,CSV文件的第i列

我有以下几点,但这需要时间:

    import os,csv, numpy, scipy
    from numpy import *
    f= open('some.csv', 'rb') 
    reader = csv.reader(f, delimiter=',')
    header = reader.next()
    zipped = zip(*reader)
    print( zipped[0] ) # is the first column
有没有更好的方法在python中读取数据(从大文件中读取数据)(至少在内存方面与R一样快)

使用
zip
将整个文件加载到内存中,然后将其转置以获得列值。如果只需要列值,只需将其包含在列表中即可

如果需要多个列,则可以执行以下操作:

from operator import itemgetter
get_cols = itemgetter(1, 3, 5)
cols = map(get_cols, reader)

您还可以使用pandas.read_csv及其
use_cols
参数。看

from operator import itemgetter
get_cols = itemgetter(1, 3, 5)
cols = map(get_cols, reader)
import pandas as pd

data = pd.read_csv('some.csv', use_cols = ['col_1', 'col_2', 'col_4'])
...