赞
踩
本文将以IMDB电影评分数据集为例,展示Python中常用的数据切片和索引的操作。
包括:
首先导入Pandas和Numpy,
- import pandas as pd;
- import numpy as np;
导入使用的数据集:IMBD电影评分数据集,并对数据进行基础的了解:
- path='D:movies_csv.csv'
- movies=pd.read_csv(path)
- movies.head(5)
movies.shape
IMDB数据集包含了979条电影的信息,包括电影名称、得分、内容分级、影片类型、时长和演员列表六项信息。
准备好数据集后,开始正文
筛选单列时,将需要提取的列名写在数据集后的方括号里,并用单引号或双引号括起来即可
movies['title']
如何需要提取多列,只需要将需要提取的多列名称用方括号写在一个列表里即可
movies[['title','content_rating']]
在对行进行提取时,使用索引号进行提取:
- movies[1:10] #切出第2条到第9条的9条记录,索引号从0开始,不包含尾部
- mydata[:] #默认提取所有的数据记录
数据框也可以同时对行和列进行切片,将行列分别写在方括号内即可
movies[1:10][['title','genre']]
在实际操作中,我们也有按照条件筛选数据的需求:
movies[(movies['content_rating']=="R")]#筛选所有分级为R的电影
- movies[(movies['content_rating']=="R")&(movies['star_rating']>=8)][['title','duration','actors_list']]
- #筛选所有分级为R,并且评分高于8分的电影的名称,时长和演员名单
除去数据框简单切片选取之外,在Python中能够完成基于索引的数据筛选。
- movies.loc[2] #按索引提取单行的数值
- movies.loc[0:3] #按索引提取区域行数值
- movies.loc[1:5,["title","duration"]] #行列同时筛选
同样,我们也有条件筛选的需求,语法和数据框选取基本一致。
movies.loc[(movies['content_rating']=="R")]#筛选所有分级为R的电影
- movies.loc[(movies['content_rating']=="R")&(movies['star_rating']>=8)][['title','duration','actors_list']]
- #筛选所有分级为R,并且评分高于8分的电影的名称,时长和演员名单
位置索引使用的iloc,与loc不同之处在于loc使用的是数据的标签索引,即数据的编号,而iloc使用的是数据的位置。如果将原数据随机打乱,在打乱前和打乱后使用loc选取出的数据是不会变化的,因为每个sample的编号并不会随位置而变化,但是使用iloc选取的数据会发生变化,因为iloc是基于位置选取数据。
iloc的语法与loc基本一样,在这里不再赘述。
以上就是在数据分析中常见的数据选取与切片的方法,希望能帮到新入门的同学~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。