簡體   English   中英

如何使用行字符串的子集在 pandas dataframe 分組中將多行組合成單行

[英]How to combine multiple rows into a single row in pandas dataframe grouping using a subset of the row string

我想從

  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 但似乎更難以處理行名的多個部分。 希望有人可以提供幫助。 先感謝您!

如果您添加包含兩個以上部分的數據,將會很有幫助。

對於您當前的情況,您可以在使用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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM