You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Pandas中按规则拼接PTM_loc与PTM_types列生成新列?

解决方案

可以通过apply函数结合字符串拆分与拼接来实现需求,具体代码如下:

import pandas as pd

# 示例数据
data = pd.DataFrame({
    'PTM_loc': ['24', '24;30', '22', '19;20;66', '16;30;50'],
    'PTM_typs': ['S', 'S', 'T', 'S;T', 'S;Y;T']
})

def combine_ptms(row):
    # 拆分位置和类型为列表
    locs = row['PTM_loc'].split(';')
    types = row['PTM_typs'].split(';')
    # 处理类型数量少于位置的情况:重复最后一个类型补全
    if len(types) < len(locs):
        types += [types[-1]] * (len(locs) - len(types))
    # 对应拼接后用分号连接成最终字符串
    return ';'.join([t + l for t, l in zip(types, locs)])

data['PTMs'] = data.apply(combine_ptms, axis=1)

运行后生成的data['PTMs']结果如下:

0          S24
1    S24;S30
2          T22
3    S19;T20;T66
4    S16;Y30;T50
Name: PTMs, dtype: object

代码说明

  • split(';'):将分号分隔的字符串拆分为列表,实现单个元素的对应匹配
  • 类型补全逻辑:当类型数量少于位置数量时(比如示例第1、3行),重复最后一个类型来匹配所有位置
  • zip(types, locs):按顺序将类型与位置一一配对,拼接成「类型+位置」的格式
  • ';'.join(...):将拼接后的单个元素重新用分号连接,还原为目标格式的字符串

内容的提问来源于stack exchange,提问作者RRRRRRRR

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 19:52:03