pandas 級聯(lián)

一. 簡單級聯(lián)

pd.concat()
索引在級聯(lián)時可重復(fù)
參數(shù):

  • ignore_index: 忽略創(chuàng)建時的索引
  • keys: 可實多層索引,使合并后的數(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

二. 不匹配級聯(lián)

pd.concat() 參數(shù):

  • join() : 'outer' (默認(rèn)),'inner'
  • join_axes: 指定連接軸
outer: 外連接 補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

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容