簡體   English   中英

如何將熊貓數據框中的多列統一為多索引?

[英]How to unify multiple columns in pandas dataframe into a multiindex?

我有一個這樣的數據框:

pd.DataFrame(data={"a": [1,2], "b": [3,4], "c": [5,6]}, index=[0,1])

以表格形式:

   a  b  c
0  1  3  5
1  2  4  6

我想將它轉換為這樣的數據框:

pd.DataFrame(data={"foo":[1,2,3,4,5,6]},
             index=pd.MultiIndex.from_tuples(
               [('a', 0), ('a', 1), ('b', 0), ('b', 1), ('c', 0), ('c', 1)],
               names=("var", "id")))

表格形式:

         foo
var id     
a   0      1
    1      2
b   0      3
    1      4
c   0      5
    1      6

實現這一目標的最簡單方法是什么?

首先創建一個新的多索引

df.columns = pd.MultiIndex.from_product([df.columns.tolist(), ['foo']])

print(df)

    a   b   c
  foo foo foo
0   1   3   5
1   2   4   6

然后使用.stack.swaplevel()

df.stack(0).swaplevel(0,1)

     foo
a 0    1
b 0    3
c 0    5
a 1    2
b 1    4
c 1    6

嘗試unstack

out = df.unstack().to_frame('foo')
Out[146]: 
     foo
a 0    1
  1    2
b 0    3
  1    4
c 0    5
  1    6

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM