csv(Comma-Separated Values),有时也成为字符分割值,因为分割字符也可以不是逗号。我最常用的打开csv的方式是写字板。csv文件以纯文本形式存储表格数据(数字和文本)。
纯文本意味着该文件是一个字符序列,不包含必须像二进制数字那样被解读的数据。cvs文件由任意数目的记录组成,记录间以某种换行符分割;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。
类似于这种:
特点:
- 读取出的数据一般为字符类型,如果是数字需要人为转换为数字
- 以行为单位读取数据
- 列之间以半角逗号或制表符为分隔,一般为半角逗号
- 一般为每行开头不计空格,每一行是属性列,数据列之间以间隔符为间隔无空格,行之间无空行。
注意:
行之间无空行很重要,如果有空行或者数据集中行末有空格,读取数据时一般会出错,引发数组越界(list index out of range)错误。
使用pandas读入csv文件
#!/usr/bin/python
# -*- coding:utf-8 -*-
import csv
import numpy as np
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
from sklearn.model_selection import train_test_split
from sklearn.linear_model import LinearRegression
from pprint import pprint
path = 'Advertising.csv'
# pandas读入
data = pd.read_csv(path) # TV、Radio、Newspaper、Sales
#将TV Radio两列对应的数据给矩阵x
x = data[['TV', 'Radio']]
#将Sales列的数据给矩阵y
y = data['Sales']
print (x)
print (y)
控制台输出结果:
x:
y: