如何使用行字符串的子集将数据帧分组中的多行合并为一行

2024-04-26 00:38:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我想将此熊猫数据帧的格式从

  individual_id  Rec  Sig
0    C11 part 1  0.2  0.8
1    C11 part 2  0.1  0.9
2    C12 part 1  0.3  0.7
3    C12 part 2  0.5  0.5
4    C13 part 1  0.1  0.9
5    C13 part 2  0.7  0.3

改为这种格式

  individual_id  Rec 1  Rec 2  Sig 1  Sig 2
0           C11    0.2    0.1    0.8    0.9
1           C12    0.3    0.5    0.7    0.5
2           C13    0.1    0.7    0.9    0.3

其中Rec 1Rec 2现在表示individual_id的部分,但在一行中。然而,对于某些individual_id可能有3个部分。我希望这是有道理的。我试着使用df.groupby,但它似乎更难处理行名称的多个部分。希望有人能帮忙。提前谢谢你


Tags: 数据名称iddf格式individualsiggroupby
1条回答
网友
1楼 · 发布于 2024-04-26 00:38:35

如果您添加包含两个以上部分的数据,这将非常有用

对于当前情况,在使用pivot重新整形之前,可以从individual_id提取所需的值:

reshape = df.assign(
    num=df.individual_id.str[-1], individual_id=df.individual_id.str[:3]
).pivot("individual_id", "num")

# it could also be " ".join(x)
reshape.columns = reshape.columns.map("_".join)
reshape.reset_index()


    individual_id   Rec_1   Rec_2   Sig_1   Sig_2
0           C11     0.2     0.1     0.8     0.9
1           C12     0.3     0.5     0.7     0.5
2           C13     0.1     0.7     0.9     0.3

相关问题 更多 >