亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

熊貓連接多級索引數據框并合并同一級別內的同名列

熊貓連接多級索引數據框并合并同一級別內的同名列

四季花海 2023-02-07 11:12:10
我有兩個多級索引數據框。當我連接它們時,同名列會重復。df1Column  col1 col2     1    3     2    4我想將它與另一個 df 合并,df2Column  col3     5     6當我合并兩者時pd.concat([df1, df2], axis=1)結果來了:Column      Column  col1 col2   col3     1    3      5     2    4      6我想要得到的是:Column        col1 col2 col3     1    3    5     2    4    6任何幫助將非常感激。謝謝
查看完整描述

2 回答

?
翻閱古今

TA貢獻1780條經驗 獲得超5個贊

使用DataFrame.sort_index


pd.concat([df1, df2], axis=1).sort_index(axis=1)

編輯:


print (df1)

  Column     

    col5 col2

0      1    3

1      2    4


print (df2)

  Column

    col1

0      5

1      6



df = pd.concat([df1, df2], axis=1)


c = df.columns.tolist()

df = df.reindex(c[:1] + sorted(c[1:]), axis=1)

print (df)

  Column          

    col5 col1 col2

0      1    5    3

1      2    6    4

EDIT1:與一起使用DataFrame.xsDataFrame.sort_index添加原始非選定的caolumns值Index.union和最后更改順序DataFrame.reindex


print (df)

  Column              a     

    col2 col1 col5 col1 col3

0      1    5    3    5    4

1      2    6    4    7    7


cols = (df.xs('Column', drop_level=False, axis=1, level=0)

          .sort_index(ascending=False, axis=1).columns)

print (cols)

MultiIndex([('Column', 'col5'),

            ('Column', 'col2'),

            ('Column', 'col1')],

           )


df = df.reindex(cols.union(df.columns, sort=False), axis=1)

print (df)

  Column              a     

    col5 col2 col1 col1 col3

0      3    1    5    5    4

1      4    2    6    7    7


查看完整回答
反對 回復 2023-02-07
?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

我們還可以使用DataFrame.combine_first

df3 = df1.combine_first(df2)


查看完整回答
反對 回復 2023-02-07
  • 2 回答
  • 0 關注
  • 119 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號