Pandas的向量化字符串插值?这不需要迭代就能实现吗?

2024-04-18 02:58:30 发布

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

设置

我想添加一个新列,该列包含一个具有基/模板表单的URL,并且应该根据行中包含的信息将某些值插入其中。在

The table data

我想做的事

base_link = "https://www.vectorbase.org/Glossina_fuscipes/Location/View?r=%(scaffold)s:%(start)s-%(end)s"

# simplify getting column data from data_frame
start = operator.attrgetter('start')
end = operator.attrgetter('end')
scaffold = operator.attrgetter('seqname')

def get_links_to_genome_browser(data_frame):
    base_links = pd.Series([base_link]*len(data_frame.index))
    links = base_links % {"scaffold":scaffold(data_frame),"start":start(data_frame),"end":end(data_frame)}
    return links

Tags: https模板信息url表单databaselink
2条回答

我想我明白你的要求了。告诉我

base_link = "https://www.vectorbase.org/Glossina_fuscipes/Location/View?r=%(scaffold)s:%(start)s-%(end)s"

那你就可以这样做了

^{pr2}$

所以我在回答我自己的问题,但我最终解决了这个问题,所以我想结束这个问题并记录解决方案。在

解决方案是使用data_frame.apply(),但将get_links_to_genome_browser函数中的索引语法更改为Series语法,而不是{}索引语法。在

def get_links_to_genome_browser(series):
    link = base_link % {"scaffold":series.ix['seqname'],"start":series.ix['start'],"end":series.ix['end']}
    return link

那就叫它:

^{pr2}$

相关问题 更多 >