机器学习

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

2018-01-07  本文已影响0人  SundayCoder

今天来学习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开始。

加油一起学习,更新完毕

上一篇 下一篇

猜你喜欢

热点阅读