将pandas数据帧转换为系列

时间:2016-12-09 05:48:54

标签: python pandas

有没有办法将pandas数据帧转换为具有多索引的系列?数据框的列也可以是多索引的。

下面有效,但仅适用于带标签的多索引。

In [163]: d
Out[163]:

a  0     1
b  0  1  0  1
a  0  0  0  0
b  1  2  3  4
c  2  4  6  8

In [164]: d.stack(d.columns.names)
Out[164]:

   a  b
a  0  0    0
      1    0
   1  0    0
      1    0
b  0  0    1
      1    2
   1  0    3
      1    4
c  0  0    2
      1    4
   1  0    6
      1    8
dtype: int64

1 个答案:

答案 0 :(得分:3)

我认为您可以nlevels使用length查找levelsMultiIndex的{​​{1}},然后使用range创建stack

print (d.columns.nlevels)
2

#for python 3 add `list`
print (list(range(d.columns.nlevels)))
[0, 1]

print (d.stack(list(range(d.columns.nlevels))))
   a  b
a  0  0    0
      1    0
   1  0    0
      1    0
b  0  0    1
      1    2
   1  0    3
      1    4
c  0  0    2
      1    4
   1  0    6
      1    8
dtype: int64
相关问题