动手学数据分析(三)主要是对数据进行重构,其任务为使用不同函数进行数据合并,以及数据聚合与运算groupby的运用。重点掌握数据合并函数concat、merge和join的用法及区别;groupby机制。
第二章 数据准备
2.2 数据重构——数据合并
常见的数据合并方法主要有三种:
1、pandas.concat方法——轴向堆叠数据
根据轴方向的不同(axis参数),可以将堆叠分成横向堆叠和纵向堆叠,默认采用的是纵向堆叠方式。在堆叠数据时,默认采用的是外连接,(join参数设为outer)的方式。
用法:pd.concat( [df数据1, df数据2, …… ], axis = 0或1, join = 连接方式, keys = 表明数据来源 )
参数说明:
axis:需要合并链接的轴,0是行,1是列
join:连接的方式 inner,或者outer
keys:为了明确哪些数据来源于哪个变量
2、pandas.merge方法——主键合并数据
主键合并根据一个或多个键将不同的DaraFrame对象连接起来,大多数是将两个DataFrame对象中重叠的列作为合并的键。
用法:pandas.merge(left, right, how='inner', on=None, left_on=None, right_on=None, left_index=False, right_index=False, sort=False, suffixes=('_x', '_y'))
参数说明:
how:默认为inner,可设为inner/outer/left/right
on:根据某个字段进行连接,必须存在于两个DateFrame中(若未同时存在,则需要分别使用left_on和right_on来设置)
left_on:左连接,以DataFrame1中用作连接键的列
right_on:右连接,以DataFrame2中用作连接键的列
left_index:将DataFrame1行索引用作连接键
right_index:将DataFrame2行索引用作连接键
sort:根据连接键对合并后的数据进行排列,默认为True
suffixes:对两个数据集中出现的重复列,新数据集中加上后缀_x,_y进行区别
3、DataFrame.join方法——根据行索引合并数据
用法:DataFrame.join(other, on=None, how=’left’, lsuffix=”, rsuffix=”, sort=False)
参数说明:
other:【DataFrame,或者带有名字的Series,或者DataFrame的list】如果传递的是Series,那么其name属性