将pandas数据框转换为系列数据。

3
有没有一种方法可以将带有多重索引的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个回答

4

我认为您可以使用nlevels来查找MultiIndexlevelslength,然后使用stack创建range

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接