第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

合并兩個(gè)列標(biāo)題并在多索引數(shù)據(jù)幀 python/在列名稱上方添加列中指定新名稱

合并兩個(gè)列標(biāo)題并在多索引數(shù)據(jù)幀 python/在列名稱上方添加列中指定新名稱

富國滬深 2023-07-05 10:31:57
我有初始數(shù)據(jù)框:              r_id1   r_score1    rid2     r_score2RankID1    ID21      A-1    id-1      1.23      id-34      6.782      A-1    id-9      2.34      id-45      3.453      A-2    id-8      3.56      id-32      4.564      A-3    id-6      4.35      id-10      3.985      A-4    id-4      7.89      id-67      2.98我希望我的數(shù)據(jù)框是(Result_df):                 Score_R1              Score_R2             r_id1   r_score1     rid2     r_score2ID1    ID21      A-1    id-1      1.23      id-34      6.782      A-1    id-9      2.34      id-45      3.453      A-2    id-8      3.56      id-32      4.564      A-3    id-6      4.35      id-10      3.985      A-4    id-4      7.89      id-67      2.98我的數(shù)據(jù)框是多索引并且具有多索引列。我嘗試了這段代碼final_df.columns = [' '.join(col).strip() for col in final_df.columns.values]這給了我這個(gè)輸出ID1    ID2    r_id1   r_score1    rid2     r_score21      A-1    id-1      1.23      id-34      6.782      A-1    id-9      2.34      id-45      3.453      A-2    id-8      3.56      id-32      4.564      A-3    id-6      4.35      id-10      3.985      A-4    id-4      7.89      id-67      2.98后 :cols = final_df.columns.map(''.join)lvl = 'Score_R' + cols.str.extract('(\d+)', expand=False)final_df.columns = [lvl, cols]final_df.to_csv("f.csv")輸出是:             Score_R1  Score_R1    Score_R2  Score_R2               r_id1   r_score1     rid2     r_score2ID1    ID21      A-1    id-1      1.23      id-34      6.782      A-1    id-9      2.34      id-45      3.453      A-2    id-8      3.56      id-32      4.564      A-3    id-6      4.35      id-10      3.985      A-4    id-4      7.89      id-67      2.98我需要合并具有相同名稱的列標(biāo)題                Score_R1               Score_R2                r_id1   r_score1     rid2     r_score2ID1    ID21      A-1    id-1      1.23      id-34      6.782      A-1    id-9      2.34      id-45      3.45
查看完整描述

1 回答

?
慕妹3242003

TA貢獻(xiàn)1824條經(jīng)驗(yàn) 獲得超6個(gè)贊

您可以用于str.extract從列名稱中獲取數(shù)字,添加前綴并最后將原始列分配回MultiIndex in columns


print (df.columns.tolist())

[('r_id1', ''), ('r_score1', ''), ('rid2', ''), ('r_score2', '')]


cols = df.columns.map(''.join)

print (cols.tolist())

['r_id1', 'r_score1', 'rid2', 'r_score2']


lvl = 'Score_R' + cols.str.extract('(\d+)', expand=False)

print (lvl)

Index(['Score_R1', 'Score_R1', 'Score_R2', 'Score_R2'], dtype='object')



df.columns = [lvl, cols]

print (df)

? ? ? ? Score_R1? ? ? ? ? Score_R2? ? ? ? ?

? ? ? ? ? ?r_id1 r_score1? ? ?rid2 r_score2

ID1 ID2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

1? ?A-1? ? ?id-1? ? ?1.23? ? id-34? ? ?6.78

2? ?A-1? ? ?id-9? ? ?2.34? ? id-45? ? ?3.45

3? ?A-2? ? ?id-8? ? ?3.56? ? id-32? ? ?4.56

4? ?A-3? ? ?id-6? ? ?4.35? ? id-10? ? ?3.98

5? ?A-4? ? ?id-4? ? ?7.89? ? id-67? ? ?2.98



df.columns = df.columns.map('_'.join)

print (df)

? ? ? ? Score_R1_r_id1? Score_R1_r_score1 Score_R2_rid2? Score_R2_r_score2

ID1 ID2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

1? ?A-1? ? ? ? ? ?id-1? ? ? ? ? ? ? ?1.23? ? ? ? ?id-34? ? ? ? ? ? ? ?6.78

2? ?A-1? ? ? ? ? ?id-9? ? ? ? ? ? ? ?2.34? ? ? ? ?id-45? ? ? ? ? ? ? ?3.45

3? ?A-2? ? ? ? ? ?id-8? ? ? ? ? ? ? ?3.56? ? ? ? ?id-32? ? ? ? ? ? ? ?4.56

4? ?A-3? ? ? ? ? ?id-6? ? ? ? ? ? ? ?4.35? ? ? ? ?id-10? ? ? ? ? ? ? ?3.98

5? ?A-4? ? ? ? ? ?id-4? ? ? ? ? ? ? ?7.89? ? ? ? ?id-67? ? ? ? ? ? ? ?2.98

編輯:您可以將第一級(jí)的缺失值替換為空字符串:


cols = df.columns.droplevel(-1)

lvl = 'Score_R' + cols.str.extract('(\d+)', expand=False)

print (lvl)

Index(['Score_R1', 'Score_R1', 'Score_R2', 'Score_R2'], dtype='object')


lvl = lvl.where(~lvl.duplicated(), '')

print (lvl)

Index(['Score_R1', '', 'Score_R2', ''], dtype='object')


df.columns = [lvl, cols]

print (df)

? ? ? ? Score_R1? ? ? ? ? Score_R2? ? ? ? ?

? ? ? ? ? ?r_id1 r_score1? ? ?rid2 r_score2

ID1 ID2? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??

1? ?A-1? ? ?id-1? ? ?1.23? ? id-34? ? ?6.78

2? ?A-1? ? ?id-9? ? ?2.34? ? id-45? ? ?3.45

3? ?A-2? ? ?id-8? ? ?3.56? ? id-32? ? ?4.56

4? ?A-3? ? ?id-6? ? ?4.35? ? id-10? ? ?3.98

5? ?A-4? ? ?id-4? ? ?7.89? ? id-67? ? ?2.98


print (df.columns)

MultiIndex([('Score_R1',? ? 'r_id1'),

? ? ? ? ? ? (? ? ? ? '', 'r_score1'),

? ? ? ? ? ? ('Score_R2',? ? ?'rid2'),

? ? ? ? ? ? (? ? ? ? '', 'r_score2')],

? ? ? ? ? ?)


查看完整回答
反對(duì) 回復(fù) 2023-07-05
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)