首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将多列的行转换为垂直连接的列

将多列的行转换为垂直连接的列
EN

Stack Overflow用户
提问于 2015-03-27 20:02:22
回答 1查看 68关注 0票数 1

这是我拥有的Pandas Dataframe:

代码语言:javascript
复制
Trial      Time  Condition             Status       Q    Operation
 ATAB  09:57:09  HEAT-1255      Jump_starting      34          New
 ATAB  09:57:09  HEAT-7319     Farenheit_Rise       0          New
 ATAB  09:57:09  HEAT-5005    Surface_Celcius       0          New
 ATAB  09:57:09  HEAT-7891      Pressure_Drop       2     Rob_Qn_1
 ATAB  09:57:09  HEAT-1000   Surface_Pressure       0       On_Now
 ATAB  09:58:18  HEAT-1255      Jump_starting      35          New
 ATAB  09:58:18  HEAT-7319     Farenheit_Rise       0          New
 ATAB  09:58:18  HEAT-5005    Surface_Celcius       0          New
 ATAB  09:58:18  HEAT-7891      Pressure_Drop       2     Rob_Qn_1
 ATAB  09:58:18  HEAT-1000   Surface_Pressure       0       On_Now
 ATAB  09:59:16  HEAT-1255      Jump_starting      35          New
 ATAB  09:59:16  HEAT-7319     Farenheit_Rise       0          New
 ATAB  09:59:16  HEAT-5005    Surface_Celcius       0          New
 ATAB  09:59:16  HEAT-7759      Import_Eraser       8   Runing_now
 ATAB  09:59:16  HEAT-7891      Pressure_Drop       2     Rob_Qn_1
 ATAB  09:59:16  HEAT-1000   Surface_Pressure       1       Alb_77
 ATAC  01:29:44  HEAT-5005    Surface_Celcius       0          New
 ATAC  01:29:44  HEAT-7759      Import_Eraser       8   Runing_now
 ATAC  01:29:44  HEAT-7891      Pressure_Drop       2     Rob_Qn_1
 ATAC  01:29:44  HEAT-1000   Surface_Pressure       1       Alb_77
 ATAD  08:49:30  HEAT-7319     Farenheit_Rise       0          New
 ATAD  08:49:30  HEAT-5005    Surface_Celcius       0          New
 ATAD  08:49:30  HEAT-7759      Import_Eraser       8   Runing_now
 ATAD  08:49:30  HEAT-7891      Pressure_Drop       2     Rob_Qn_1
 ATAD  08:49:30  HEAT-1000   Surface_Pressure       1       Alb_77

在给定的时间内,它会列出各种条件、它们的状态和正在执行的操作。每次都存在各种状态和操作。

我试图以这样的方式旋转Dataframe,将Status列的行放到一个标题行上。然后,每一次,我都需要把相应的操作放在每个标题下。下面是我要找的东西:

代码语言:javascript
复制
Trial     Time  Jump_starting   Farenheit_Rise  Surface_Celcius Pressure_Drop   Surface_Pressure    Import_Eraser
ATAB  09:57:09             34                0                0             2                  0              N/A
....
....
....

本质上,我需要反转Operation列,同时也要保持试用版Time column 行不变。

如何使用Python2.7中的Pandas实现这一点?

编辑:若要创建Dataframe,请将此帖子中的数据复制到剪贴板,然后使用以下行:

代码语言:javascript
复制
import pandas as pd
df = pd.read_clipboard()
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-03-27 20:56:41

我想您可以使用透视()作为索引,但似乎只能指定一个列作为索引。因此,我认为使用un堆栈()是解决这个问题的方法。首先,我们需要设置索引=试用、时间和状态

代码语言:javascript
复制
df[["Trial","Time","Status","Q"]].set_index(["Trial","Time","Status"]).unstack("Status")

给你

代码语言:javascript
复制
                 Q
Status           Farenheit_Rise Import_Eraser Jump_starting Pressure_Drop Surface_Celcius   Surface_Pressure
Trial   Time                        
ATAB    09:57:09 0              NaN            34   etc
        09:58:18 0              NaN            35   ...
        09:59:16 0              8              35   ...
ATAC    01:29:44 NaN            8              NaN  ...
ATAD    08:49:30 0              8              NaN  ...

编辑:得到一些澄清

要在索引中包含条件,只需执行以下操作

代码语言:javascript
复制
df[["Trial","Time","Condition","Status","Q"]].set_index(
                            ["Trial","Time","Condition","Status"]).unstack("Status")
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/29309277

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档