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

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

熊貓:從多級列索引中刪除一個級別?

熊貓:從多級列索引中刪除一個級別?

慕勒3428872 2019-09-19 16:35:39
如果我有一個多級列索引:>>> cols = pd.MultiIndex.from_tuples([("a", "b"), ("a", "c")])>>> pd.DataFrame([[1,2], [3,4]], columns=cols)    一種   --- +  -     b | C-  +  -  +  - 0 | 1 | 21 | 3 | 4如何刪除該索引的“a”級別,因此我最終得到:    b | C-  +  -  +  - 0 | 1 | 21 | 3 | 4
查看完整描述

3 回答

?
慕尼黑8549860

TA貢獻1818條經(jīng)驗 獲得超11個贊

你可以使用MultiIndex.droplevel:


>>> cols = pd.MultiIndex.from_tuples([("a", "b"), ("a", "c")])

>>> df = pd.DataFrame([[1,2], [3,4]], columns=cols)

>>> df

   a   

   b  c

0  1  2

1  3  4


[2 rows x 2 columns]

>>> df.columns = df.columns.droplevel()

>>> df

   b  c

0  1  2

1  3  4


[2 rows x 2 columns]


查看完整回答
反對 回復(fù) 2019-09-19
?
慕尼黑5688855

TA貢獻1848條經(jīng)驗 獲得超2個贊

刪除索引的另一種方法是使用列表解析:


df.columns = [col[1] for col in df.columns]


   b  c

0  1  2

1  3  4

如果要組合兩個級別的名稱(如下面的示例中底層包含兩個'y'),此策略也很有用:


cols = pd.MultiIndex.from_tuples([("A", "x"), ("A", "y"), ("B", "y")])

df = pd.DataFrame([[1,2, 8 ], [3,4, 9]], columns=cols)


   A     B

   x  y  y

0  1  2  8

1  3  4  9

刪除頂級會留下兩列,索引為“y”。通過將名稱與列表理解相結(jié)合可以避免這種情況。


df.columns = ['_'.join(col) for col in df.columns]


    A_x A_y B_y

0   1   2   8

1   3   4   9

這是我在做一個小組后遇到的問題,并且花了一段時間才找到解決它的另一個問題。我在這里針對具體案例調(diào)整了解決方案。


查看完整回答
反對 回復(fù) 2019-09-19
?
GCT1015

TA貢獻1827條經(jīng)驗 獲得超4個贊

另一種方法是使用.xs方法df根據(jù)橫截面重新分配。df


>>> df


    a

    b   c

0   1   2

1   3   4


>>> df = df.xs('a', axis=1, drop_level=True)


    # 'a' : key on which to get cross section

    # axis=1 : get cross section of column

    # drop_level=True : returns cross section without the multilevel index


>>> df


    b   c

0   1   2

1   3   4


查看完整回答
反對 回復(fù) 2019-09-19
  • 3 回答
  • 0 關(guān)注
  • 929 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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