python中csv文件_机器学习之python中csv文件学习学习(二十)

今天来学习python中csv文件的操作

这是机器学习中最为重要的一个技能。

因为机器学习中很多的训练集和测试集均是csv文件

在看代码之前请先在你的目录下确保已经有一个hellocsv.csv的文件。你可以使用excel创建然后保存的时候选择格式是csv就可以,默认使用逗号作为分隔符号

内容如下:

image.png

代码块

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# @Author : SundayCoder-俊勇

# @File : csvLearn.py

# 今天我们来学习一下python中的CSV文件的相关操作。

# CSV全称为“Comma Separated Values”,

# 是一种格式化的文件,由行和列组成,

# 分隔符可以根据需要来变化,一般的分隔符默认使用的是逗号。

# 创建文件hellocsv.csv并初始化,初始化内容如下。

# name,age,classroom

# zhangsan,23,1401

# lisi,24,1402

# (1)读取csv文件的所有内容,包括标题和内容。

import csv#这个模块是python自带的一个模块

#

# 只需要注意文件名必须为单引号而不是双引号!!!

# reader = csv.reader(open("hellocsv.csv"))

# for name,age,classroom in reader:

# print name,age,classroom

# 输出的结果为:

# name age classroom

# zhangsan 23 1401

# lisi 24 1402

# (2)另外一种方法

# csv_reader = csv.reader(open('hellocsv.csv'))

# for row in csv_reader:

# print row

# 输出的结果为:

#[' name', 'age', 'classroom']

# [' zhangsan', '23', '1401']

# [' lisi', '24', '1402']

# 可以看出这种方法把每一行变成了一个list返回。

# (3)第三种方法读csv文件

# with open('hellocsv.csv','rb') as csvfile:

# reader = csv.reader(csvfile)

# rows = [row for row in reader]

# print rows

# 输出的结果为:一个大的列表里面还有三个小的列表

# [[' name', 'age', 'classroom'],

# [' zhangsan', '23', '1401'],

# [' lisi', '24', '1402']]

# (4)只提取某一行的数据:例如提取第二行的数据

# with open('hellocsv.csv','rb') as csvfile:

# reader = csv.reader(csvfile)

# for i,rows in enumerate(reader):

# if i == 2:

# row = rows

# print row

# 输出的结果为:[' lisi', '24', '1402']

# 注意行数从0开始。

# (5)读取文件的第五种方式:使用DictReader,

# 和reader函数类似,接收一个可迭代的对象,

# 能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,

# 而这个字典的键则是这个单元格的标题(即列头)。

#

# with open('hellocsv.csv','rb') as csvfile:

# reader = csv.DictReader(csvfile)

# rows = [row for row in reader]

# print rows

# 输出的结果为:

# [{'classroom': '1401', 'age': '23', ' name': ' zhangsan'},

# {'classroom': '1402', 'age': '24', ' name': ' lisi'}]

# 注:字典的键是这个单元格的标题

# (6)读取制定行的数据的另一种写法。

# with open('hellocsv.csv','rb') as csvfile:

# reader = csv.DictReader(csvfile)

# for row in reader:

# if row['name']=='zhangsan':

# print row

# 输出的结果为:{'classroom': '1401', 'age': '23', 'name': 'zhangsan'}

# (5)写入数据到csv文件之中。

# data =['wangpeng', '22', '1402']

# with open('hellocsv.csv','a+') as csvfile:

# csv_writer = csv.writer(csvfile)

# csv_writer.writerow(data)

# 写入之后再查看文件内容

# csv_reader = csv.reader(open('hellocsv.csv'))

# for row in csv_reader:

# print row

# 数字识别的测试1:

# with open('hellocsv.csv', 'r') as csvfile1:

# csv_reader = csv.reader(csvfile1)

# dataSet = list(csv_reader)

# print dataSet

# 输出的结果为:

# [

# ['name', 'age', 'classroom'],

# ['zhangsan', '23', '1401'],

# ['lisi', '24', '1402']

# ]

# 数字识别的测试2:

# with open('hellocsv.csv', 'r') as csvfile1:

# csv_reader = csv.reader(csvfile1)

# dataSet = list(csv_reader)

# for x in range(0, len(dataSet)):

# print dataSet[x]

# 输出的结果为:

# ['name', 'age', 'classroom']

# ['zhangsan', '23', '1401']

# ['lisi', '24', '1402']

# 可以看出如果X为0的话则标题也被当做数据,所以机器学习中需要去掉标题

# 也就是x应该从1开始。

加油一起学习,更新完毕

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值