数据合并
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"})
- 方式一效率>方式二效率>方式三效率
- 方式二、三、四可以对多个列进行分组。