python - 带有行号的 pandas 堆栈

标签 python pandas

我有一个 Pandas DataFrame 示例:

          A         B         C         D
0  0.441040  0.235533 -0.899417  1.960367
1 -0.701764  2.343389  1.293865  0.556737
2 -0.511988 -0.260338  0.201938  1.154131
3  1.001099  1.077759 -0.006872 -0.961884
4  0.914676 -0.445287 -1.618399 -0.616381
5  0.360060 -0.082711  1.010578  1.071003

我最终想要的是让某些列与上面关联的行号堆叠在一起。使用列选择和堆栈非常接近:

 df[['B','C']].stack()

0  B    0.235533
   C   -0.899417
1  B    2.343389
   C    1.293865
2  B   -0.260338
   C    0.201938
3  B    1.077759
   C   -0.006872
4  B   -0.445287
   C   -1.618399
5  B   -0.082711
   C    1.010578

但我希望行号与每一行相关联,因为将下面的每一行与原始数据框/表相关联非常重要:

0  B    0.235533
0  C   -0.899417
1  B    2.343389
1  C    1.293865
2  B   -0.260338
2  C    0.201938
3  B    1.077759
3  C   -0.006872
4  B   -0.445287
4  C   -1.618399
5  B   -0.082711
5  C    1.010578

我不确定如何将 df[['B','C']].stack() 转换为我想要的与每行关联的原始行号/索引。

最后,我想将输出写入带有行号关联的 CSV 文件。

最佳答案

pandas.DataFrame.reset_index 将多级索引插入列中。它也适用于 pandas.Series

df[['B', 'C']].stack().reset_index()

关于python - 带有行号的 pandas 堆栈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33021073/

相关文章:

python - pandas groupby 方法实际上是如何工作的?

python - 如何删除来自 loc 函数的行? ( Pandas )

python - 如何在Spyder IDE的变量资源管理器中保存变量

python - 虚拟变量python的数据操作

python - Pandas:对于 2 个或多个特定列值完全相同的行组,如何将唯一整数分配为新列

python - 关于余弦相似度,损失函数和网络如何选择(我有两个方案)

python - 如果文件是链接文件,如何找到链接的目标路径

python - 同一进程中的多个python循环

python - 如何将tensorflow placerholder变量转换为numpy数组?

python - 如何在 Python 中连接两个数据框?