Pandas是基于NumPy的数据分析包,提供了大量快速处理数据的方法。Pandas的名称来自于Panel data和Python data analysis,最初由AQR Capital Management在2008年4月作为金融数据分析工具开发出来,并于2009年底开源,目前由PyData开发和维护。
MovieLens(https://movielens.org/)它由美国 Minnesota 大学计算机科学与工程学院的 GroupLens 项目组(https://grouplens. org/)创办,是一个非商业性质的、以研究为目的的实验性站点,通过使用 Collaborative Filtering 和 Association Rules 相结合的技术,向用户推荐他们感兴趣的电影。
MovieLens数据集(http://files.grouplens. org/datasets/movielens/)是GroupLens 项目组采集的一组从20世纪90年代末到21世纪初由MovieLens用户提供的电影评分数据,该数据集包括电影评分、电影元数据(时间与类型)以及关于用户的数据(年龄、性别、职业、邮编)。
本文使用MovieLen 1M版本(m1-1m.zip),该数据集包括三个文件:用户信息、影片信息(1919-200年的3883部电影)、评分信息,readme为说明文件,包括了年龄和职业的编码说明。
1. 数据加载
数据加载常使用以下方法:
read_csv 默认分隔符为逗号
read_table 默认分隔符为制表符(“\t”)
通过以下代码将数据加载到pandas的DataFrame对象中,DateFrame是一个面向列的二维表结构,包含行索引和列索引。
2. 数据探索
数据探索常用以下索引选项:
loc:通过行标签索引数据(label-location based indexer)
iloc:通过行号索引行数据(integer position based,from 0 to
length-1 of the axis)
3. 数据合并
(1)merge
merge可根据一个或多个键将不同DataFrame中的行连接起来(类似于SQL中join操作)。默认情况下,merge做的是inner连接,结果中的键是交集,其他方式还有left、right以及outer。
pd.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False)
left: 参与合并的左侧DataFrame
right:参与合并的右侧DataFrame
how: inner/outer/left/right
on: 用于连接的列名
left_on: 左侧DataFrame中用作连接键的列
right_on: 右侧DataFrame中用作连接键的列
left_index: 左侧行索引作为连接键
right_index: 右侧行索引作为连接键
(2)concat
concat方法将两个对象按指定轴连接(concatenation),这个过程也被称作绑定(binding)或堆叠(stacking)。concat默认是在axis=0(row)上进行连接(类似于SQL中union all操作),axis=1(column)。
pd.concat([df1,df2]) 等同于 df1.append(df2) ;
pd.concat([df1,df2],axis=1)等同于 pd.merge(df1,df2,left_index=True,right_index=True,how='outer')
(3)join
join方法提供了两个DataFrame基于索引的连接,其中参数的意义与merge方法基本相同,join方法默认为左外连接how=‘left’。
领取专属 10元无门槛券
私享最新 技术干货