Skip to main content
 首页 » 编程设计

python之Pandas之根据组值和列值有效地连接行

2025年05月04日16exmyth

假设我们有一个具有以下结构的 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