merge()
- 指定列名合并
根据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'))
- 左连接:
pd.merge(df1,df2,how='left')
- 右连接:
pd.merge(df1,df2,how='right')
- 内连接(默认):
pd.merge(df1,df2,how='inner')
,默认下是根据左右对象中出现同名的列作为连接的键 - 外连接:
pd.merge(df1,df2,how='outer')
concat()
pd.concat([df1,df2], axis=1, ignore_index=True)
axis:合并方式,0-列,1-行
ignore_index:是否忽略索引
- 按行合并:按行合并会以拥有最多行的为基准,最后合并后呈现的行数就是为基准的行数。
- 按列合并:按列合并不会合并行,所以即使行索引一致也不会合并。
- join方式:
pandas的5个合并函数
- join主要用于基于索引的横向合并拼接;
- merge主要用于基于指定 列的横向合并拼接;
- concat可用于横向和纵向合并拼接;
- append主要用于纵向追加;
- combine可以通过使用函数,把两个DataFrame按列进行组合。
concat合并
- 纵向合并时,相同字段合并在一起(不受字段顺序影响),不同字段有缺失值显示NaN
参考自: DataFrame合并-知乎 https://blog.csdn.net/weixin_41261833/article/details/120164659