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

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

如何替換 pandas 多索引列集中的值

如何替換 pandas 多索引列集中的值

森林海 2023-05-16 15:09:17
鑒于以下情況:dd = {}for i in range(3):    for j in range(3):        key = (f"col_{i}", j)        dd[key] = {1: 2, 3: 4}print(pd.DataFrame.from_dict(dd))看起來像:  col_0       col_1       col_2            0  1  2     0  1  2     0  1  21     2  2  2     2  2  2     2  2  23     4  4  4     4  4  4     4  4  4我想使用以下替換:reps = {    "col_0": {0: "o", 1: "one", 2: "two"},    "col_1": {0: "o2", 1: "one2", 2: "two2"},    "col_2": {0: "o3", 1: "one3", 2: "two3"},}因此col_0, col_1,col_2不變,但第二層 分別0,1,2更改為o, one, two, o2, one2, two2, 和o3, one, two3 ,給出類似的內(nèi)容:  col_0             col_1            col_2            o  one  two   o2 one2 two2     o3  one3  two31     2  2    2      2  2    2        2    2     23     4  4    4      4  4    4        4    4     4
查看完整描述

1 回答

?
阿波羅的戰(zhàn)車

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

您可以使用列名創(chuàng)建元組,然后將匹配字典與第二個參數(shù)一起用作get默認(rèn)值,因此如果不匹配則不替換:


L = [(a, reps[a].get(b, b)) if a in reps else (a, b) for a, b in df.columns.tolist()]

df.columns = pd.MultiIndex.from_tuples(L)

print (df)

  col_0         col_1           col_2          

      o one two    o2 one2 two2    o3 one3 two3

1     2   2   2     2    2    2     2    2    2

3     4   4   4     4    4    4     4    4    4

測試字典中是否沒有匹配的外鍵reps:


reps = {

    "col_100": {0: "o", 1: "one", 2: "two"},

    "col_1": {0: "o2", 1: "one2", 2: "two2"},

    "col_2": {0: "o3", 1: "one3", 2: "two3"},

}


L = [(a, reps[a].get(b, b)) if a in reps else (a, b) for a, b in df.columns.tolist()]

df.columns = pd.MultiIndex.from_tuples(L)

print (df)

  col_0       col_1           col_2          

      0  1  2    o2 one2 two2    o3 one3 two3

1     2  2  2     2    2    2     2    2    2

3     4  4  4     4    4    4     4    4    4

測試是否沒有匹配的內(nèi)部鍵:


reps = {

    "col_0": {100: "o", 1: "one", 20: "two"},

    "col_1": {0: "o2", 1: "one2", 2: "two2"},

    "col_2": {0: "o3", 1: "one3", 2: "two3"},

}


L = [(a, reps[a].get(b, b)) if a in reps else (a, b) for a, b in df.columns.tolist()]

df.columns = pd.MultiIndex.from_tuples(L)

print (df)

  col_0        col_1           col_2          

      0 one  2    o2 one2 two2    o3 one3 two3

1     2   2  2     2    2    2     2    2    2

3     4   4  4     4    4    4     4    4    4


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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