Python读取csv文件的三种方式

一、前期准备

  1. Python版本:3.7.3
  2. 制作一个不包含头文件的csv文件,为了方便文件内容是纯数字,字符集为utf-8,并命名为test.csv,放到程序的根目录下。
  3. 使用PyCharm创建一个Python工程,并安装Numpy和Pandas类库。如下所示:

           Python读取csv文件的三种方式_第1张图片

二、使用标准Python类库导入

   Python提供了标准的类库CSV,用来处理csv文件。使用函数reader()读取csv文件,读取的数据可以生成一个Numpy的数组,用来训练算法模型。使用该函数所有数据的数据类型必须一致,且不能有头文件。操作方法如下:

  1. 创建一个Python文件,命名为load_data_by_std
  2. 代码如下:
#################################################################

# load_data_by_std.py

# 演示使用标准类库CSV,读取csv文件,并将数据写入numpy数组中

  #################################################################

# 导入类库

  import csv as csv

  import numpy as np

  

  # 文件名,注意需要带后缀

  filename = 'test.csv'

  # 读取文件

  with open(filename,'rt') as csvfile:

    # 读取数据,默认dialect='excel',delimiter=',',可以不写

    # csv.reader(csvfile, dialect='excel', **fmtparams)

    # 参数说明参考:https://docs.python.org/3.7/library/csv.html

    reader = csv.reader(csvfile, dialect='excel', delimiter=',')

    # 打印每一行数据

    #for row in reader:

    #    print(row)

    # 将每一行转换为列表

    x = list(reader)

    # 转换为numpy的数组,类型是int

    data = np.array(x,dtype='int')

    # 打印数据

    print(data)

 

三、使用Numpy导入

   使用numpy的loadtext函数导入数据。使用该函数所有数据的数据类型必须一致,且不能有头文件。

  1. 创建python文件,命名:load_data_by_numpy.py
  2. 代码如下:
#################################################################

# load_data_by_numpy.py

# 演示使用numpy类库导入csv文件

  #################################################################

# 导入类库

  import numpy as np

  

  # 文件名,注意需要带后缀

  # 文件中不能出现头文件且文件中字段的类型必须一致

  filename = 'test.csv'

  # 读取文件

  with open(filename,'rt') as csvfile:

    # 加载数据,dtype默认float类型,需要转换为int

    data = np.loadtxt(csvfile, dtype='int', delimiter=',')

    # 打印数据

    print(data)

 

四、使用Pandas导入

通过pandas.read_rcv()函数来导入csv文件,这个函数的返回值是DataFrame,可以方便地进行下一步的处理。在机器学习中,经常使用Pandas来做数据清洗和数据准备工作。数据中的数据类型可以不一致

  1. 创建python文件,命名:load_data_by_pandas.py
  2. 代码如下:
#################################################################

# load_data_by_pandas.py

# 演示使用pandas类库导入csv文件

  #################################################################

# 导入类库

  import pandas as pd

  

  # 文件名,注意需要带后缀

  filename = 'test.csv'

  # 设置列标题

  names = ['col1','col2','col3','col4']

  # 导入数据,数据文件中的列的数据类型可以不一致

  data = pd.read_csv(filename,names=names)

  # 输出数据维度,格式:(行数,列数)

  print(data.shape)

  # 矩阵方式输出数据

  print(data)

 

 

你可能感兴趣的:(Python)