首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用新的列名将Pandas中的数据帧从长格式重塑为宽格式

使用新的列名将Pandas中的数据帧从长格式重塑为宽格式
EN

Stack Overflow用户
提问于 2020-11-02 02:57:44
回答 2查看 208关注 0票数 0

我有一个需要重塑的数据帧(示例如下)。我希望每行只有一个唯一的用户,但是现在,每个用户在数据框中有两行,根据“testday”列(baseline和D7)具有不同的值。我希望基于testday组的列名来重命名值列(‘01.tristeza Aparente)。因此,新的值列将类似于'Basel_Tristeza Aparente’和'D7_01.

我已经准备好的关于Pivotunstack的教程并不能很好地工作,因为我并没有尝试聚合数据。我只是在将用户折叠成一行时需要不同的列。谢谢,如果我能把这个问题说得更清楚,请告诉我

代码语言:javascript
复制
  {'01. Tristeza Aparente': {0: 4.0,
  1: 4.0,
  2: 4.0,
  3: 2.0,
  4: 1.0,
  5: 0.0,
  6: 3.0},
 '02. Tristeza Expressa': {0: 6.0,
  1: 6.0,
  2: 4.0,
  3: 0.0,
  4: 4.0,
  5: 3.0,
  6: 6.0},
 'group': {0: 'placebo',
  1: 'placebo',
  2: 'placebo',
  3: 'placebo',
  4: 'placebo',
  5: 'placebo',
  6: 'placebo'},
 'subject': {0: 1.0, 1: nan, 2: 2.0, 3: nan, 4: 3.0, 5: nan, 6: 4.0},
 'subjectedit': {0: 1.0, 1: 1.0, 2: 2.0, 3: 2.0, 4: 3.0, 5: 3.0, 6: 4.0},
 'testday': {0: 'Basal',
  1: 'D7',
  2: 'Basal',
  3: 'D7',
  4: 'Basal',
  5: 'D7',
  6: 'Basal'}}
EN

Stack Overflow用户

回答已采纳

发布于 2020-11-02 03:43:11

您可以使用f对数据帧进行pivot并使用格式化字符串重命名列,但请确保您使用的是最新版本的pandas,因为pivot在早期版本中存在错误。

代码语言:javascript
复制
df = df.pivot(index=['group', 'subjectedit'], columns='testday')
df.columns = [f'{col[1]}_{col[0]}' for col in df.columns]
df
Out[1]: 
                     Basal_01. Tristeza Aparente  D7_01. Tristeza Aparente  \
group   subjectedit                                                          
placebo 1.0                                  4.0                       4.0   
        2.0                                  4.0                       2.0   
        3.0                                  1.0                       0.0   
        4.0                                  3.0                       NaN   

                     Basal_02. Tristeza Expressa  D7_02. Tristeza Expressa  \
group   subjectedit                                                          
placebo 1.0                                  6.0                       6.0   
        2.0                                  4.0                       0.0   
        3.0                                  4.0                       3.0   
        4.0                                  6.0                       NaN   

                     Basal_subject  D7_subject  
group   subjectedit                             
placebo 1.0                    1.0         NaN  
        2.0                    2.0         NaN  
        3.0                    3.0         NaN  
        4.0                    4.0         NaN  
票数 1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64635755

复制
相关文章

相似问题

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