我有这样一个数据框:

pd.DataFrame(data={"a": [1,2], "b": [3,4], "c": [5,6]}, index=[0,1])

以表格形式:

   a  b  c
0  1  3  5
1  2  4  6

我想将其转换为如下数据帧:

pd.DataFrame(data={"foo":[1,2,3,4,5,6]},
             index=pd.MultiIndex.from_tuples(
               [('a', 0), ('a', 1), ('b', 0), ('b', 1), ('c', 0), ('c', 1)],
               names=("var", "id")))

表格形式:

         foo
var id     
a   0      1
    1      2
b   0      3
    1      4
c   0      5
    1      6

实现这一目标的最简单方法是什么?

推荐答案

试试unstack

out = df.unstack().to_frame('foo')
Out[146]: 
     foo
a 0    1
  1    2
b 0    3
  1    4
c 0    5
  1    6

Python相关问答推荐

如何将双框框列中的成对变成两个新列

如何访问所有文件,例如环境变量

从numpy数组和参数创建收件箱

Polars:用氨纶的其他部分替换氨纶的部分

将tdqm与cx.Oracle查询集成

在np数组上实现无重叠的二维滑动窗口

启动带有参数的Python NTFS会导致文件路径混乱

如何更改groupby作用域以找到满足掩码条件的第一个值?

幂集,其中每个元素可以是正或负""""

Polars将相同的自定义函数应用于组中的多个列,

如何在Great Table中处理inf和nans

为什么Python内存中的列表大小与文档不匹配?

启动线程时,Python键盘模块冻结/不工作

替换包含Python DataFrame中的值的<;

PYTHON中的selenium不会打开 chromium URL

与同步和异步客户端兼容的Python函数

按列表分组到新列中

大Pandas 中的群体交叉融合

合并Pandas中的数据帧,但处理不存在的列

如何仅使用数据帧操作获得特定的唯一数据帧组合?