第一次参加比赛,没想到大多数的时间和精力都放在了处理数据上。。。
csv格式,即逗号分隔值,通常是纯文本文件,在我的电脑上默认打开方式是excel,当然你要是想看的文本格式的全貌也可以用一些编辑器或者IDE打开。从名字即可看出,在.CSV文件中,两个数据是通过逗号分割开的,处理CSV的方式有很多,直接的可以用编辑器打开慢慢按照条目处理,当然也可以使用别的工具处理,本文要讲的就是pandas,一个可以为python语言提供高性能的数据结构和分析的开源库。
在处理广告训练集数据时大量的使用到了pandas,但由于本人也没系统的看过pandas,因此本文主要介绍下在数据处理过程中主要使用到的函数和方法。
一:pandas.read_csv()
read_csv(),从名字就可以看出来,这是读取csv文件的函数,当python文件和csv文件在同一目录下时,可以直接读取文件名,如"read_csv('the.csv')",如果你也是用Google colab,注意你是无法对上传到Google Drive,同一colab文件下的数据文件进行读取的。
这里提供两个方法解决colab读取外部文件的问题:
!apt-get install -y -qq software-properties-common python-software-properties module-init-tools
!add-apt-repository -y ppa:alessandro-strada/ppa 2>&1 > /dev/null
!apt-get update -qq 2>&1 > /dev/null
!apt-get -y install -qq google-drive-ocamlfuse fuse
from google.colab import auth
auth.authenticate_user()
from oauth2client.client import GoogleCredentials
creds = GoogleCredentials.get_application_default()
import getpass
!google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret} < /dev/null 2>&1 | grep URL
vcode = getpass.getpass()
!echo {vcode} | google-drive-ocamlfuse -headless -id={creds.client_id} -secret={creds.client_secret}
!mkdir -p drive
!google-drive-ocamlfuse drive
import os
os.chdir("drive/yourdir/")
上面直接拷进去运行就可以了,当然因为colab的特性,你可能每次都要运行一下。
还有一种方法,就是在colab文件页面上传数据文件,同样,每次重开你的文件都需要重新上传,如图:
colab
继续讲read_csv()函数,一般除了读取csv文件,很多文本格式的文件都可以读取的,如dat之类的,而且是推荐使用read_csv()函数,而不是read_table()。注意,read_csv读取的数据类型为Dataframe,后续如果想做其他分析可能需要转化成其他数据类型。
除此之外,read_csv()还有很多可选参数:
1. header
header = None可以使你不会把第一行数据作为列名称来显示。差别如下图所示:
对比.png
2. names
names 可以为每列添加名称,方便你分析每列数据是用来做什么的。
每列的数据名称.png
3. usecols
可以指定输出第几列:
第二列.png
4. nrows
可以指定输出的行数:
前两行.png
当然还有很多别的参数,这里不一一介绍。
二 . to_csv
顾名思义,写入一个csv文件中,可以讲某Dataframe格式的数据通过to_csv('yourfilename.csv'),生成该名称的csv文件,常用的两个参数一个是“header = 0”,可以忽略列索引,一个是“index = 0”可以忽略行索引,不然这两个值也会被默认写入你的csv文件中,如图:
image.png
三. Dataframe
dataframe是一种非常重要的数据格式,这里就简单罗列几句对处理数据十分有用的几个语句:
image.png
image.png
当然,仅仅了解这些是不够的,如清洗数据还可能存在更多的情况需要考虑,这时候就要引进正则的知识了,篇幅有限不再详述,有兴趣的同学可以自己google。
网友评论