pandas之表的联结

 

导语

在数据分析前时我们经常需要整合数据,经常需要将表与表联结起来,下面介绍两种常用的方法。

导入要用的数据 

1 d1=pd.DataFrame(np.random.randn(5,3),index=range(5),columns=["a","b","c"])
2 d2=pd.DataFrame(np.random.randn(5,3),index=range(5),columns=["a","b","c"])
3 d3=pd.DataFrame(np.random.randn(5,3),index=range(2,7),columns=["d","b","c"])

d1

 

d2

 

 

 

d3

 

 

•concat

按某一维度拼接pandas对象

pd.concat(objs,axis=0, join='outer',join_axes=None, ignore_index=False, keys=None, levels=None,names=None, verify_integrity=False,sort=None, )

outer为并,inner为交,axis=0按照列名联结,axis=1按照index联结 

1 d12=pd.concat([d1,d2],join="outer",axis=0)
2 d12

 

d13_in=pd.concat([d1,d3],join="inner",axis=1)#axis=1根据index联结
d13_in

 

 

d13_out=pd.concat([d1,d3],join="outer",axis=1)
d13_out

 

 

 

1 d13_out0=pd.concat([d1,d3],join="outer",axis=0)
2 d13_out0

 

1 d13_in0=pd.concat([d1,d3],join="inner",axis=0)
2 d13_in0

 

 

•merge

pd.merge( left,right,how='inner',on=None,left_on=None,right_on=None,left_index=False,right_index=False,sort=False,indicator=False)

how可以是:inner(默认),outer,lefti,right
on=[key1,key2]连接俩个数据的共同名的键值,当然可以用left_on=None,right_on=None,left_index=False,right_index=False随意组合

1  d12=pd.merge(d1,d3,how="outer",left_index=True,right_index=True)
2  d12

 

1 d13=pd.merge(d1,d3,how="inner",left_index=True,right_index=True)
2 d13

 

 

 

 

总结:merge更像是SQL中的join按照指定的列名来联结表,而concat则是按照轴来联结表

posted @ 2020-08-05 10:42  瑶池里  阅读(686)  评论(0编辑  收藏  举报