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

如何为Pandas DataFrame含多逗号分隔值的列添加字符串前缀?

问题描述

我尝试在Pandas DataFrame中创建一个新列,该列包含字符串前缀和另一列的值。存储值的列存在多个逗号分隔值的情况,示例如下:

MIMNumber      
102610
114080,601079 

期望最终的DataFrame呈现为:

MIMNumber       OMIM_Link
102610  https://www.omim.org/entry/102610
114080,601079   https://www.omim.org/entry/114080,https://www.omim.org/entry/601079

尝试过以下代码:

df['OMIM_Link'] = df['MIMNumber'].map('https://www.omim.org/entry/{}'.format)  

但该方法无法为多逗号分隔的每个值单独添加前缀,结果如下:

MIMNumber       OMIM_Link
102610  https://www.omim.org/entry/102610
114080,601079   https://www.omim.org/entry/114080,601079

还尝试了这段代码:

url = 'https://www.omim.org/entry/'
df['OMIM_Link'] = df['MIMNumber'].apply(url.join)

但前缀被错误地添加到了每个字符之间,结果如下:

MIMNumber       OMIM_Link
102610  1https://www.omim.org/entry/0https://www.omim.org/entry/2https://www.omim.org/entry/6https://www.omim.org/entry/1https://www.omim.org/entry/0
114080,601079   1https://www.omim.org/entry/1https://www.omim.org/entry/4https://www.omim.org/entry/0https://www.omim.org/entry/8https://www.omim.org/entry/0https://www.omim.org/entry/,https://www.omim.org/entry/6https://www.omim.org/entry/0https://www.omim.org/entry/1https://www.omim.org/entry/0https://www.omim.org/entry/7https://www.omim.org/entry/9

解决方法

核心逻辑是:先将每个MIMNumber按逗号拆分为独立编号,给每个编号添加前缀后,再用逗号拼接回字符串。以下是两种可行方案:

方案一:自定义函数结合apply

def generate_omim_links(mim_str):
    # 拆分字符串并去除每个编号的前后空格
    mim_list = [num.strip() for num in mim_str.split(',')]
    # 为每个编号生成完整链接
    link_list = [f'https://www.omim.org/entry/{num}' for num in mim_list]
    # 拼接成最终字符串
    return ','.join(link_list)

df['OMIM_Link'] = df['MIMNumber'].apply(generate_omim_links)

方案二:链式操作(更简洁)

df['OMIM_Link'] = df['MIMNumber'].str.split(',')\
    .apply(lambda x: ','.join([f'https://www.omim.org/entry/{num.strip()}' for num in x]))

验证结果

执行上述任意代码后,DataFrame会生成预期的OMIM_Link列:

MIMNumber       OMIM_Link
102610  https://www.omim.org/entry/102610
114080,601079   https://www.omim.org/entry/114080,https://www.omim.org/entry/601079

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 06:03:15