代码展示
pd.concat(objs, axis=0, join='outer', join_axes=None, ignore_index=False,
keys=None, levels=None, names=None, verify_integrity=False,
copy=True)
参数解释
axis:拼接轴方向,默认为0,沿行拼接;若为1,沿列拼接
join:默认外联’outer’,拼接另一轴所有的label,缺失值用NaN填充;内联’inner’,只拼接另一轴相同的label
join_axes: 指定需要拼接的轴的labels,可在join既不内联又不外联的时候使用
ignore_index:默认为False,ignore_index = True表示对index进行重新排序
keys:多重索引
举例
#表示按行拼接,外连接,重置索引
pd.concat([df1,df2],ignore_index=True)
#表示按列拼接,指定只取df1的index的数据
pd.concat([df1,df2], axis=1, join_axes=[df1.index])
代码展示
df.merge(left, right, how='inner', on=None, left_on=None,
right_on=None, left_index=False, right_index=False,
sort=False, suffixes=('_x', '_y'), copy=True,ndicator=False,
validate=None)
参数解释
how:{'left’, ‘right’, ‘outer’, ‘inner’}, 默认‘inner’,类似于SQL的内联。'left’类似于SQL的左联;'right’类似于SQL的右联;‘outer’类似于SQL的全联
on:进行合并的参照列名,必须一样。若为None,方法会自动匹配两张表中相同的列名
left_on: 左边df进行连接的列
right_on: 右边df进行连接的列
suffixes: 左、右列名称前缀
validate:默认None,可定义为“one_to_one” 、“one_to_many” 、“many_to_one”和“many_to_many”,即验证是否一对一、一对多、多对一或多对多关系
举例
#按列key进行outer操作
pd.merge(left, right, on='key',how='outer')
#键名不同时的连接
pd.merge(left,right,left_on='A',right_on='B')
代码展示
df.join(other, on=None, how='left', lsuffix='', rsuffix='', sort=False)
参数解释
on:参照的左边df列名key(可能需要先进行set_index操作),若未指明,按照index进行join
how:{‘left’, ‘right’, ‘outer’, ‘inner’}, 默认‘left’,即按照左边df的index(若声明了on,则按照对应的列);若为‘right’abs照左边的df,若‘inner’为内联方式;若为‘outer’为全连联方式。
sort:是否按照join的key对应的值大小进行排序,默认False
lsuffix,rsuffix:当left和right两个df的列名出现冲突时候,通过设定后缀的方式避免错误
举例
# 以索引,并集
left.join(right,how='outer')
# 以索引,交集
left.join(right,how='inner')
# 通过添加后缀避免冲突
df3.join(df4 , lsuffix='_df3', rsuffix='_df4')
代码展示
#行方向的拼接操作
df1.append(df2, ignore_index=False, verify_integrity=False)
参数解释
ignore_index:若为True,则对index进行重排
verify_integrity:对index的唯一性进行验证,若有重复,报错。若已经设置ignore_index,则该参数无效
举例
#index重排,效果类似于pd.concat([df1, df2], ignore_index=True)
df1.append(df2,ignore_index=True)
函数 | 默认连接方式 | 调用方法 | 备注 |
---|---|---|---|
.concat() | axis为0, join=‘outer’,行拼接,取并集 | res = pd.concat( [df1,df2], axis=0 ) | axis设置行/列拼接的方向 |
.merge() | 列拼接,取交集 | result=pd.merge(df1, df2,how=‘left’) | 只能按列拼接 |
.join() | how=’left’ ,左列拼接 | df1.join(df2) | 只能按列拼接 |
.append() | 按行拼接 | df1.append(df2) | 只能按行拼接 |
https://blog.csdn.net/weixin_42782150/article/details/89546357
https://blog.csdn.net/qq_27575895/article/details/88789147
https://blog.csdn.net/gdkyxy2013/article/details/80785361
https://blog.csdn.net/ai_1046067944/article/details/86481276
https://blog.csdn.net/guofei_fly/article/details/85455813