假设我们有一个具有以下结构的 pandas 数据框: 编号 |编号|序列| 一个 | 1 | × | 一个 | 3 | Z | 乙 | 1 |磷 | 乙 | 6 |格 | 乙 | 5 |丙 |
所需的结果是一个数据框,如下所示: 编号 |new_seq| 一个 |许志 | 乙 | PCG |
即new_seq列是seq按Id分组,按照number表示的顺序> 专栏。
有效实现此操作的选项有哪些?
请您参考如下方法:
您可以使用 sort_values使用 groupby 和 apply join:
print (df.sort_values(['Id', 'number']))
Id number seq
0 a 1 X
1 a 3 Z
2 b 1 P
4 b 5 C
3 b 6 G
df = df.sort_values(['Id', 'number'])
.groupby('Id', sort=False).seq
.apply(''.join)
.reset_index(name='new_seq')
print (df)
Id new_seq
0 a XZ
1 b PCG
