gpt4 book ai didi

Python Pandas 从宽到长格式更改,列标题拆分

转载 作者:太空狗 更新时间:2023-10-30 00:48:15 24 4
gpt4 key购买 nike

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

  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

测试 1 的受试者列表重复一次,然后测试 2 重复一次。

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

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

最佳答案

您可以将您的列拆分为一个多索引列,然后 reshape 您的数据框:

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

enter image description here

关于Python Pandas 从宽到长格式更改,列标题拆分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40643445/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com