有没有办法将 pandas dataframe 转换为 multiindex 系列?数据框的列也可以是多索引的。
以下有效,但仅适用于带标签的多索引。
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
最佳答案
我想你可以使用 nlevels
在 MultiIndex
中找到 levels
的 length
,然后创建 范围
与堆栈
:
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
关于python - 将 Pandas 数据框转换为系列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41053891/