三种读取方式如下:

import csv
import pandas as pd


with open('2.csv', 'r') as csvfile:
    reader = csv.reader(csvfile)
    column1 = [row[1]for row in reader]
    print(column1)


# 下面是按照列属性读取的
d = pd.read_csv('2.csv', usecols=['a', 'b'])
print(d)

# 这是表示读取前10行
d = pd.read_csv('2.csv', usecols=['a', 'b'], nrows=10)

读取完后对数据进行操作:

import pandas as pd
import numpy as np


# 2.csv文件内容如下:
# a,b,c,d,e
# 1,6,11,16,21
# 2,7,12,17,22
# 3,8,13,18,23
# 4,9,14,19,24
# 5,10,15,20,25
data = pd.read_csv('2.csv', usecols=['a', 'b'])
data = np.array(data)
c = data[1, 1]
print(c)

输出结果是 7。

通过读取指定行列 再转为ndarry格式数据  即可对数据进行任意的 剪切、拼接 等操作。

---------------------------------------------------------------------------------------------------------------------------------------------------------------------

值得注意的是,如果在读取的过程中指定了 iterator参数 那么读取到的对象类型就会发生变化:

data1 = pd.read_csv('2.csv', usecols=['a', 'b'])
print(type(data1))

data2 = pd.read_csv('2.csv', usecols=['a', 'b'], iterator=True)
print(type(data2))

输出结果为:

<class 'pandas.core.frame.DataFrame'>
<class 'pandas.io.parsers.TextFileReader'>

第一种可以进行正常的数据读取、转为列表等操作。

第二种是 指定了 iterator 参数后 返回的是 TextFileReader 对象,用于逐块处理文件,导致了对象类型发生了变化,不能继续转为ndarry格式的数据进行处理。

 

 

更多推荐

Python:读取CSV文件的某几列