如何读取数据
前言
人工智能本质上是数据科学,一切操作都是基于对数据的操作,因此,立志要学好ai的人就必须要学会数据的基本操作。
先来个简单的
先介绍一种比较简单的读取文件方式,这种方式相对于下面的pandas读取来说速度更快的一点,结构自定,对于新手来说比较方便
先寻找文件地址:
这里存在两种不同的情况,第一种就是相对比较简单的,你要操作的数据就在你当前目录下,那么直接操作就可以,下面讲讲第二种情况,即数据文件不在当前目录下。
针对这种情况,一种比较正规的方式是使用os库,现假设你当前目录为d:\file\python,但是你的数据文件在d:\dataset这个文件夹里面,那么这时候你只需要调用
1 | import os |
这样你的当前目录就调到dataset文件下,之后你就可以读取文件,
第二种方式是,如果你在jupyter上运行代码的话,你可以直接新建一个代码段用cd指令来进行调转。
在确定你的当前操作目录跟你的数据集文件在同一目录下后,你就可以读取文件了,简单的方式是:
1 | file = open('train.txt','r') |
然后这里文件形式为:
user | item | rating | timestamp |
---|---|---|---|
0 | 5 | 3 | 0898988 |
0 | 4 | 2 | …. |
…. | … | … | …. |
… | … | …. | …. |
这里第一行是0 5 3 987334
那么连续读取文章的方式为
1 | line = file.readline() |
通过这种方式就可以很方便的读取数据,还能把数据存成你喜欢的数据格式。
利用pandas
这里介绍一种有点逼格的方法,利用python强大库中的pandas
1 | import pandas as pd |
这样你就打开了这个train.csv文件,函数还规定了每列的名字。这个方法的好处是,一个语句就可以把整个文件读出。
train_file.head() 就会输出前五行的数据
train_file.decribe()则会显示每列的数据形式
这里简单的介绍下这个pandas,利用这个函数读出的格式为datafram格式,这个格式包含很多内置函数来帮助你处理数据,就是初期使用会有的繁琐,上手以后十分快乐。
pd.cut(data,bin):
这个函数可以帮助你把数据按照bin的格式进行分类。
bin = [0,59,70,80,100]
data=[ 27 ,70 ,55, 87 ,95 ,98, 55 ,61, 86, 76, 85, 53, 39, 88, 41, 71, 64, 94, 38, 94 ]
那么在处理过后,cut=pd.cut(data,bin)
cut = [ (0, 59], (59, 70], (0, 59], (80, 100], (80, 100], …, (70, 80], (59, 70], (80, 100], (0, 59], (80, 100] ]
然后你还可以基于此进行一个统计
pd.value_counts(cut)
输出为
(80, 100] 8
(0, 59] 7
(59, 70] 3
(70, 80] 2
pd.apply()
这个函数个人感觉是非常有用的一个函数,在处理数据时非常舒服。这个函数可以让你非常方便的对datafram的行或者列进行操作。
剩下的还有lambda ,fillna()函数…..,以及画图的mataplot,seaborn这些函数都不再详细讲解,不过这些都将会在你以后的学习中经常用到,自己学习一下。
链接: https://pan.baidu.com/s/17MjWhS-owkDRYYwj_4mQZQ&shfl=shareset 提取码: e62w
这里有个数据集,可以尝试一下把里面的数据集按照用户名从小到大的顺序排序,然后计算每个用户的平均值并把这个平均值加到数据里面。