1. pd.concat()
pd.concat(
objs,
axis=0, #{0/'index', 1/'columns'}, default 0
join='outer', #合并集合方式,默认并集{'inner', 'outer'}, default 'outer'
join_axes=None, # 直接确定结果使用的列名
ignore_index=False, #是否保留原索引,为True时不保留
keys=None, # 设置多级索引
levels=None,
names=None,
verify_integrity=False, # 为True时,合并时若有索引重复就会触发异常
sort=None,
copy=True,
)
- 关于join和join_index参数的示例代码
# df2 和 df3
#
# A B C
#1 A1 B1 C1
#2 A2 B2 C2
#
# B C D
#3 B3 C3 D3
#4 B4 C4 D4
print(pd.concat([df2,df3]) # 默认join是outer
print(pd.concat([df2,df3],join='inner')) # 设置为交集
# A B C D
#1 A1 B1 C1 NaN
#2 A2 B2 C2 NaN
#3 NaN B3 C3 D3
#4 NaN B4 C4 D4
#
# B C
#1 B1 C1
#2 B2 C2
#3 B3 C3
#4 B4 C4
pd.concat([df2,df3],join_axes=[df2.columns])
# A B C
#1 A1 B1 C1
#2 A2 B2 C2
#3 NaN B3 C3
#4 NaN B4 C4
2. pd.merge()
pd.merge(
left, #DataFrame
right, #DataFrame or named Series
how='inner', #{'left','right','outer','inner'},默认'inner'
on=None, #label or list
left_on=None, #label or list, or array-like
right_on=None, #label or list, or array-like
left_index=False, #bool, default False
right_index=False, #bool, default False
sort=False,
suffixes=('_x', '_y'), #为重复列设置别名,增加后缀
copy=True,
indicator=False,
validate=None,
)
- 参数on只能在两个DataFrame有共同列名时才可以使用
- left_on和right_on在列名不同时使用
- left_index和right_index用于将索引设置为合并键
3. df.join()
df.join(other,
on=None,
how='left', #{'left', 'right', 'outer', 'inner'}, default 'left'
lsuffix='', #str, default ''
rsuffix='', #str, default ''
sort=False
)
4. df.append()
df1.append(df2)
# 效果同
pd.concat([df1,df2])
注意,append()会重新创建索引和数据缓存。