当前位置: 首页 > 面试题库 >

大熊猫堆栈与行号

长孙鸿
2023-03-14
问题内容

我有一个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()


 类似资料:
  • 我有一个数据帧,如: 所以我想通过两个“for循环”添加一些列,如: 新的类似数据帧的图片: 我的代码不起作用: 如何编写代码来获得像第二张图片这样的数据帧?

  • 我正在读取一个包含多个datetime列的csv文件。我需要在读取文件时设置数据类型,但datetimes似乎是个问题。例如: 运行时出现错误: 不理解数据类型"datetime" 通过pandas在事实之后转换列。to_datetime()不是一个选项,我不知道哪些列将成为datetime对象。这些信息可以更改,并且来自于通知我的数据类型列表的任何信息。 或者,我尝试用numpy.genfrom

  • 问题内容: 我试图将文档批量插入MongoDB中(因此绕过Mongoose并使用本机驱动程序,因为Mongoose不支持批量插入文档数组)。我这样做的原因是为了提高写作速度。 我在以下代码中的console.log(err)处收到错误“ RangeError:超出最大调用堆栈大小”: 也许与Mongoose返回的响应数组的格式有关,这意味着我不能直接使用MongoDB进行本机插入吗?我已经在每个响

  • 查看以下: 问题是它不会在ipython笔记本中按默认值打印所有行,但我必须切片才能查看结果行。即使以下选项也不会更改输出: 有人知道如何显示整个阵列吗?

  • 问题内容: 每当加载一个类时,什么存储在堆中以及什么存储在堆栈中? 线程也驻留在哪里? 问题答案: 引用类型在堆中。 任何原始类型的数据和对堆上值(方法的参数/局部变量)的引用都在堆栈上。 每个线程都有自己的堆栈。 应用程序中的所有线程共享同一堆。

  • 简介 堆和栈是计算机里面最基本的概念,不过如果一直使用高级语言如 Python/Ruby/PHP/Java 等之类的语言的话,可能对堆和栈并不怎么理解,当然这里的栈(Stack)并不是数据结构里面的概念,而是计算机对内存的一个抽象。相比而言,C/C++/Rust 这些语言就必须对堆和栈的概念非常了解才能写出正确的程序,之所以有这样的区别是因为它们的内存管理方式不同,Python 之类的语言程序运行

  • 从0.13版本开始,可以通过引用尚未在数据帧中的. loc或. ix中的索引来追加到数据帧。看到留档。 那么我就不明白为什么这条线失败了: 这将生成ValueError: 这里是所有的治疗方法。形状=(53,12),,,,。 在这里设置放大的正确方法是什么?

  • 问题内容: 我正在寻找一种方法来反向旋转数据框。据我所知,pandas提供了一种pivot或pivot_table方法将EAV df转换为“普通”方法。但是,还有一种方法可以做逆运算吗? 所以给定数据框: 我想将其转换为(EAV模型): 这样做最有效的方法是什么? 问题答案: 假设是索引,将执行以下操作: 如果不是索引,请像这样设置: