堆栈数据框中的列,以及堆栈索引列

时间:2013-06-13 17:12:33

标签: python indexing stack pandas

我在堆放pandas中的数据框中的列时遇到问题,此外还会堆叠一列并使其成为不包含唯一值的索引列。

>>> ds
  respondent  brand engine  country  aware  aware_2  aware_3  age  volvo  resp
0          a  volvo      p      swe      1        0        1   23   True     1
1          b  volvo   None      swe      0        0        1   45   True     2
2          c    bmw      p       us      0        0        1   56  False     3
3          d    bmw      p       us      0        1        1   43  False     2
4          e    bmw      d  germany      1        0        1   34  False     1
5          f   audi      d  germany      1        0        1   59  False     2
6          g  volvo      d      swe      1        0        0   65   True     3
7          h   audi      d      swe      1        0        0   78  False     2
8          i  volvo      d       us      1        1        1   32   True     2

我想制作一个新的数据框,其中列awareaware_2aware_3以及列resp已堆叠。

1 个答案:

答案 0 :(得分:0)

这就是你要追求的吗?

In [11]: df1 = df.set_index(['aware', 'aware_2', 'aware_3', 'resp'])

In [12]: df1.columns.name = 'heading'

In [13]: df1.stack()
Out[13]:
aware  aware_2  aware_3  resp  heading
1      0        1        1     respondent          a
                               brand           volvo
                               engine              p
                               country           swe
                               age                23
                               volvo            True
0      0        1        2     respondent          b
                               brand           volvo
                               engine           None
                               country           swe
                               age                45
                               volvo            True
...