假设我们有一个具有以下结构的 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
关于python - Pandas - 根据组值和列值有效地连接行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42049887/