python - 将 Pandas 数据框转换为系列

标签 python pandas

有没有办法将 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

最佳答案

我想你可以使用 nlevelsMultiIndex 中找到 levelslength,然后创建 范围堆栈:

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/

相关文章:

python - 如何删除pyspeech windows语音识别命令?

python - 为什么 Flask Migrations 没有检测到字段的长度变化?

python - Pandas 按行查找第一个 nan 值并返回列名

python - Multiindex 中的 Pandas 自定义排序行

python - 如何查找列表中的数字序列

python - 迭代 Pandas 列并在每次迭代中计算新列

python - 在 Ubuntu 上运行 OpenCV 时 GStreamer 发出警告

python - 如何将函数应用于 Pandas 系列中的每一行?

python - 在一个时间序列中总结 $ 金额的首次客户

python - 将 Matplotlib 与 Dask 结合使用