pandas concat merge join 区分

concat 是直接左右、上下连接

concat 可横向按行合并,可纵向按列合并

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

obs:带合并的对象集合,可以是Series,DataFrame

axis:{0,1....}合并方向,默认为0,表示纵向,1表示横向;

join:{inner,outer}:合并方式,默认为outer,表示并集;inner表示交集;

join_axes: 按哪些对象的索引保存;

ignore_index:{False,True},(注意,这里是是否是重建索引,默认不重建)

keys:为原始dataframe添加一个键,默认为无

eg:列相连,索引保持原状
>>> s1 = pd.Series(['a', 'b'])
>>> s2 = pd.Series(['c', 'd'])
>>> pd.concat([s1, s2])    
0    a
1    b
0    c
1    d
dtype: object
>>> pd.concat([s1, s2], ignore_index=True) #重新建立索引
0    a
1    b
2    c
3    d
dtype: object


>>> pd.concat([s1, s2], keys=['s1', 's2',])  #增加新的keys
s1  0    a
    1    b
s2  0    c
    1    d
dtype: object
>>> pd.concat([s1, s2], keys=['s1', 's2'],
...           names=['Series name', 'Row ID'])   #新增列名
Series name  Row ID
s1           0         a
             1         b
s2           0         c
             1         d
dtype: object


 result=pd.concat([df1, df2],axis=1)  
#横向链接(按照index连接),这里是把所有的元素联接接在一起:

猜你喜欢

转载自blog.csdn.net/yu1336199790/article/details/102951965