一. 簡(jiǎn)單級(jí)聯(lián)
pd.concat()
索引在級(jí)聯(lián)時(shí)可重復(fù)
參數(shù):
- ignore_index: 忽略創(chuàng)建時(shí)的索引
- keys: 可實(shí)多層索引经柴,使合并后的數(shù)據(jù)更加清晰
- join
- axis: 0/1
def make_df(cols,inds):
data = {c:[ c+str(i) for i in inds] for c in cols}
return pd.DataFrame(data,index=inds,columns=cols)
df1 = make_df(['a','b'],[0,1])
df2 = make_df(['a','b'],[1,4])
print(pd.concat((df1,df2)))
# a b
# 0 a0 b0
# 1 a1 b1
# 1 a1 b1
# 4 a4 b4
print(pd.concat((df1,df2),ignore_index=True))
# a b
# 0 a0 b0
# 1 a1 b1
# 2 a1 b1
# 3 a4 b4
print(pd.concat((df1,df2),keys=['x','y']))
# a b
# x 0 a0 b0
# 1 a1 b1
# y 1 a1 b1
# 4 a4 b4
二. 不匹配級(jí)聯(lián)
pd.concat() 參數(shù):
- join() : 'outer' (默認(rèn))唠倦,'inner'
- join_axes: 指定連接軸
outer: 外連接 補(bǔ)NaN(默認(rèn))
inner: 內(nèi)連接
def make_df(cols,inds):
data = {c:[ c+str(i) for i in inds] for c in cols}
return pd.DataFrame(data,index=inds,columns=cols)
df1 = make_df(['a','b'],[0,1])
df2 = make_df(['a','c'],[1,4])
print(pd.concat([df1,df2]))
# a b c
# 0 a0 b0 NaN
# 1 a1 b1 NaN
# 1 a1 NaN c1
# 4 a4 NaN c4
print(pd.concat([df1,df2],join='inner'))
# a
# 0 a0
# 1 a1
# 1 a1
# 4 a4
三. 使用 append() 添加
def make_df(cols,inds):
data = {c:[ c+str(i) for i in inds] for c in cols}
return pd.DataFrame(data,index=inds,columns=cols)
df1 = make_df(['a','b'],[0,1])
df2 = make_df(['a','b'],[1,4])
print(df1.append(df2))
# a b
# 0 a0 b0
# 1 a1 b1
# 1 a1 b1
# 4 a4 b4