Python Pandas宽格式到长格式的变化与列标题的拆分[英] Python Pandas Wide to Long Format Change with Column Titles Spliting

本文是小编为大家收集整理的关于Python Pandas宽格式到长格式的变化与列标题的拆分的处理方法,想解了Python Pandas宽格式到长格式的变化与列标题的拆分的问题怎么解决?Python Pandas宽格式到长格式的变化与列标题的拆分问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我有一个包含以下列标题和行示例的表格:

  Subject  Test1-Result1  Test1-Result2  Test2-Result1  Test2-Result2
0    John             10            0.5             20            0.3

我想把它改成:

  Subject level_1  Result1  Result2
0    John   Test1       10      0.5
1    John   Test2       20      0.3

Test1 的主题列表重复一次,Test2 又重复一次.

我想我可以使用 for 循环来做到这一点,但有没有更 Python 的方式?

为了增加复杂性,我需要为每个测试添加一列额外的信息.我想我可以使用字典,但是如何在每个相应的行中插入有关 Test1 的信息?

推荐答案

您可以将列拆分为多索引列,然后重塑数据框:

df.set_index('Subject', inplace=True)
df.columns = df.columns.str.split("-", expand=True)
df.stack(level=0).rename_axis(['Subject', 'Test']).reset_index()

在此处输入图片描述

本文地址:https://www.itbaoku.cn/post/1728024.html