左合并、右合并是合并列

merge()

  1. 指定列名合并

根据by_col这一列合并,suffixes 设置列名的后缀名(相同列不同内容时用)
merge_df = pd.merge(d_df, df, on='by_col', suffixes=('_1', '_2'))
merge_df = pd.merge(d_df, df, on=['by_col1','by_col2], suffixes=('_1', '_2'))

  1. 左连接:pd.merge(df1,df2,how='left')
  2. 右连接:pd.merge(df1,df2,how='right')
  3. 内连接(默认):pd.merge(df1,df2,how='inner'),默认下是根据左右对象中出现同名的列作为连接的键
  4. 外连接:pd.merge(df1,df2,how='outer')

concat()

pd.concat([df1,df2], axis=1, ignore_index=True)
axis:合并方式,0-列,1-行
ignore_index:是否忽略索引

  1. 按行合并:按行合并会以拥有最多行的为基准,最后合并后呈现的行数就是为基准的行数。
  2. 按列合并:按列合并不会合并行,所以即使行索引一致也不会合并。
  3. join方式:

pandas的5个合并函数

  • join主要用于基于索引的横向合并拼接;
  • merge主要用于基于指定 列的横向合并拼接;
  • concat可用于横向和纵向合并拼接;
  • append主要用于纵向追加;
  • combine可以通过使用函数,把两个DataFrame按列进行组合。

concat合并

  • 纵向合并时,相同字段合并在一起(不受字段顺序影响),不同字段有缺失值显示NaN

参考自: DataFrame合并-知乎 https://blog.csdn.net/weixin_41261833/article/details/120164659