专注于快乐的事情

Pandas的数据合并

简介

在数据处理中,不免会遇到数据之间的合并。如将几个表的数据合成为一个,或者像SQL语句的关联查询。

方法

横向连接

Pandas数据框提供了merge方法以完成各种表的横向连接操作,这种连接操作与SQL语句的连接操作是类似的,包括内连接、外连接。此外,Pandas也提供了按照行索引进行横向连接的方法。

内连接

内连接使用merge函数示例,根据公共字段保留两表共有的信息,how=’inner’参数表示使用内连接,on表示两表连接的公共字段,若公共字段在两表名称不一致时,可以通过left_on和right_on指定

外连接

外连接(outer join)包括左连接(left join)、右连接(right join)和全连接(full join)三种连接。

左连接通过公共字段,保留左表的全部信息,右表在左表缺失的信息会以NaN补全
df1.merge(df2,how='left',on='id')

右连接和左连接相对,右连接通过公共字段,保留右表的全部信息,左表在右表缺失的信息会以NaN补全
df1.merge(df2,how=’right’,on=’id’)

全连接通过公共字段,保留两表的全部信息,两表互相缺失的信息会以NaN补全

df1.merge(df2,how=’outer’,on=’id’)

行索引连接

pd.concat([df1,df2],axis=1)

纵向合并

数据的纵向合并指将两张或多张表纵向拼接起来,使得原先两张或多张表的数据整合到一张表上。

Pandas中提供pd.concat方法用于完成横向和纵向合并,当参数axis=0时,类似于SQL中的UNION ALL操作。ignore_index=True表示忽略df1与df2的原先的行索引,合并并重新排列索引。

pd.concat([df1,df2],ignore_index=True,axis=0)

参考网站

评论系统未开启,无法评论!