Pandas基于组和列值高效地合并行

2024-04-28 14:27:35 发布

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

假设我们有一个pandas数据帧,其结构如下: Id | number |seq| a | 1 | X | a | 3 | Z | b | 1 | P | b | 6 | G | b | 5 | C |

所需的结果是一个数据帧,它看起来像: Id |new_seq| a | XZ | b | PCG |

也就是说,new_seq列是按Id分组的seq,并且遵循number列所指示的顺序。在

有哪些选项可以有效地执行此操作?在


Tags: 数据idnumberpandasnew顺序选项结构
1条回答
网友
1楼 · 发布于 2024-04-28 14:27:35

您可以将^{}groupbyapplyjoin一起使用:

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

相关问题 更多 >