动手学数据分析—Task3

数据合并

concat

pandas中的方法,可以进行横向和纵向合并,常用参数有:
objs:要进行合并的数据。
axis:合并的方向,1为横向,0为纵向。
join:连接的形式

merge

DataFrame自带的方法,基于列来进行连接,常用参数有:
right: 要进行合并的数据
on:指定基于合并的列名
how:合并的形式,inner、outer、left、right其中之一
left_on:基于左表合并的列名
right_on: 基于右表合并的列名
left_index:左表是否使用索引进行合并
right_index: 右表是否使用索引进行合并
当左右表的列名相同,并且how=outer时,为纵向合并。

join

DataFrame自带的方法,索引连接,基于两张表的索引进行横向合并,常用参数有:
other: 要进行合并的数据
on:索引的名字,没有则为none
how:合并的形式,inner、outer、left、right其中之一

append

DataFrame自带的方法,基于两张表的索引进行纵向合并,常用参数有:
other: 要进行纵向合并的数据
ignore_index:忽略两张表的索引,则合并后的索引会变为0, 1, …, n - 1。

转换数据结构

stack()函数

将一行数据变为多个列的层次结构

data.stack()

数据的聚合与运算

以分组求和为例:
方式一

data["聚合运算字段名"].groupby(data["分组字段名"]).sum() 

方式二

data.groupby("分组字段名")["聚合运算字段名"].sum() 

方式三

data.groupby("分组字段名").sum() ["聚合运算字段名"]

方式四

data.groupby("分组字段名").agg({"聚合运算字段名1": "sum"}).rename(columns={"聚合运算字段名1": "rename"})
  1. 方式一效率>方式二效率>方式三效率
  2. 方式二、三、四可以对多个列进行分组。
浙ICP备19012682号