Python的合并数据集

Python 的pandas能够通过一些内置的方式进行数据集的合并。Pandas.merge函数可以实现根据一个或多个键值关键的键值,将两个DataFrame进行连接,这一特性,特别类似于数据库的连接。他实现的其实就是数据库连接的操作。

现在我们按照数据库连接的逻辑,分开解释Pandas.merge的使用。



Join two dataframes along columns

1。inner join。跟我们熟知的一样,inner join实现的是两个集合的交集。

pd.merge(df1,df2,on='key')

pd.merge(df1,df2,on='key',how='inner')

df1,df2分别为不同的dataframe, ‘key’ 为指定关联的键值。如果两个frame有不同的键值,则

pd.merge(df1,df2,left_on='lkey',right_on='rkey')

例如:


2. outer join. 两个集合进行outer join,其中以一个集合的键值为关键点,

left outer join:pd.merge(df1,df2,on='key',how='left')


right outer join: pd.merge(df1,df2,on='key',how='right')

full join: pd.merge(df1,df2,how='outer')


多个键值相互关联,

pd.merge(left,right,on=['key1','key2'],how='outer')

如果一个键值同时存在于两个Frame中,而且并不是关联的键值时,可以用

pd.merge(left,right,on='key1',suffixes=('_left','_right'))


Merge on index 

inner:pd.merge(left1,right1,left_on='key',right_index=True)

full:pd.merge(left1,right1,left_on='key',right_index=True,how='outer')

所有的和之前的join模式一样,但是需要制定left_index=True or right_index=True.




多层次INDEX merge: 

index &key,

pd.merge(lefth,righth,left_on=['key1','key2'],right_index=True)

index&index,

pd.merge(lefth,righth,left_index=True,right_index=True,how='outer')



Join two Dataframe along rows

pd.concat([S1,S2,S3])类似于Dataframe 的union all

pd.concat([S1,S2,S3])  类似于 full join,同样达到了join by columns的目的。

Dataframe:列合并

pd.concat([df1,df2],axis=1,keys=['level1','level2'])

pd.concat({'level1':df1,'level2':df2},axis=1)

DataFrame 行合并




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容