将熊猫中的2列映射到第三列

时间:2019-03-19 05:12:49

标签: python python-3.x pandas lambda

我想基于其他2列('Link'URL)创建pandas列Title,以便创建包含标题形式为HTML链接标签的列:

<a href="{}">{}</a>'.format(df['Ad_URL'],df['Title'])

我正在使用:

def Ad_Link(df):
    return ('<a href="{}">{}</a>'.format(df['Ad_URL'],df['Title']))

df['Link'] = df[['Ad_URL','Title']].apply(lambda x:Ad_Link(x), axis=1)

但是它没有按预期工作。

它给出: <a href="List of all URLs">List of all Titles</a>用于df ['Link']

中的所有项目

它应该迭代并给出:

<a href="URL[0]">Title[0]</a> 
<a href="URL[1]">Title[1]</a> 

编辑

实际上我的解决方案有效,起初数据框架有问题。

2 个答案:

答案 0 :(得分:1)

这对我来说很好。

df = pd.DataFrame({'Ad_URL':['u1', 'u2', 'u3'], 'Title':['t1', 't2', 't3']})

def Ad_Link(df):
    return ('<a href="{}">{}</a>'.format(df['Ad_URL'],df['Title']))

df['Link'] = df[['Ad_URL','Title']].apply(lambda x:Ad_Link(x), axis=1)

print(df)

输出:

  Ad_URL Title                 Link
0     u1    t1  <a href="u1">t1</a>
1     u2    t2  <a href="u2">t2</a>
2     u3    t3  <a href="u3">t3</a>

答案 1 :(得分:1)

首先,您的代码对我有用。但是添加了具有相同输出的多个解决方案:

df = pd.DataFrame({'Ad_URL':['u1', 'u2', 'u3'], 'Title':['t1', 't2', 't3']})


def Ad_Link(df):
    return ('<a href="{}">{}</a>'.format(df['Ad_URL'],df['Title']))

df['Link'] = df[['Ad_URL','Title']].apply(lambda x:Ad_Link(x), axis=1)

#change variable in function to x
def Ad_Link1(x):
    return ('<a href="{}">{}</a>'.format(x['Ad_URL'],x['Title']))

df['Link1'] = df[['Ad_URL','Title']].apply(lambda x:Ad_Link1(x), axis=1)

#removed lambda function
def Ad_Link2(x):
    return ('<a href="{}">{}</a>'.format(x['Ad_URL'],x['Title']))

df['Link2'] = df.apply(Ad_Link2, axis=1)

#pass columns names to lambda function, changed function
def Ad_Link3(url, link):
    return ('<a href="{}">{}</a>'.format(url, link))

df['Link3'] = df.apply(lambda x: Ad_Link3(x['Ad_URL'],x['Title']), axis=1)

#only lambda function solution
df['Link4'] = df.apply(lambda x: '<a href="{}">{}</a>'.format(x['Ad_URL'], x['Title']), axis=1)

print (df)
  Ad_URL Title                 Link                Link1                Link2  \
0     u1    t1  <a href="u1">t1</a>  <a href="u1">t1</a>  <a href="u1">t1</a>   
1     u2    t2  <a href="u2">t2</a>  <a href="u2">t2</a>  <a href="u2">t2</a>   
2     u3    t3  <a href="u3">t3</a>  <a href="u3">t3</a>  <a href="u3">t3</a>   

                 Link3                Link4  
0  <a href="u1">t1</a>  <a href="u1">t1</a>  
1  <a href="u2">t2</a>  <a href="u2">t2</a>  
2  <a href="u3">t3</a>  <a href="u3">t3</a>