簡體   English   中英

將Pandas DataFrame轉換為分層列/更改列層次結構

[英]Pivot Pandas DataFrame into hierarchical columns/change column hierarchy

我想透鏡數據框,如:

       dim1   Value_V     Value_y   instance
0      A_1     50.000000        0   instance200
1      A_2   6500.000000        1   instance200
2      A_3     50.000000        0   instance200
3      A_4   4305.922313        1   instance200

進入具有分層列的數據框:

              A_1               A_2               A_3                .....
              Value_V  Value_y  Value_V  Value_y  Value_V  Value_y
instance200   50       0        6500     1        50       0

我試過df = df.pivot(index = "instance", columns = "dim1") ,但它只會給我一個這樣的框架:

              Value_V               Value_y                              
              A_1   A_2   A_3 ....  A_1  A_2  A_3 ....
instance200   50    6500  50        0    1    0

如何更改列的層次結構?

我自己想通了:

df = df.swaplevel(0,1,axis = 1).sort(axis = 1)

會做

你需要的是reorder_levels ,然后對列進行排序,如下所示:

import pandas as pd

df = pd.read_clipboard()

df
Out[8]:
dim1    Value_V Value_y instance
0   A_1 50.000000   0   instance200
1   A_2 6500.000000 1   instance200
2   A_3 50.000000   0   instance200
3   A_4 4305.922313 1   instance200
In [9]:

df.pivot('instance', 'dim1').reorder_levels([1, 0], axis=1).sort(axis=1)
Out[9]:
dim1        A_1             A_2             A_3             A_4
            Value_V Value_y Value_V Value_y Value_V Value_y Value_V Value_y
instance                                
instance200 50      0       6500    1       50      0       4305.922313 1

暫無
暫無

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

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