2016-06-18 2 views

Antwort

2

Verwendung:

df['url'] = 'http://www.cssss.com/companydetails.aspx?compid=' + 
      df.compid + '&secid=' + df.secid 
print (df) 
    company compid secid            url 
0  a  a1 a2 http://www.cssss.com/companydetails.aspx?compi... 
1  b  b1 b2 http://www.cssss.com/companydetails.aspx?compi... 

I url zum Testen ändern:

df['url'] = 'http:aaa.aspx?compid=' + df.compid + '&secid=' + df.secid 
print (df) 
    company compid secid        url 
0  a  a1 a2 http:aaa.aspx?compid=a1&secid=a2 
1  b  b1 b2 http:aaa.aspx?compid=b1&secid=b2 

Wenn dtypes von Spalten compid und secid ist int, gegossen str von astype:

df['url'] = 'http:aaa.aspx?compid='+df.compid.astype(str)+'&secid='+df.secid.astype(str) 
print (df) 
    company compid secid        url 
0  a  a1 a2 http:aaa.aspx?compid=a1&secid=a2 
1  b  b1 b2 http:aaa.aspx?compid=b1&secid=b2 

EDIT Kommentar:

Wenn any von Spalten compid und secid enthält NaN kann es leerer String sein:

#code before 
data3 = pd.merge(df1,df2,on='company', how='outer') 

print (data3) 
    company compid secid 
0  a  a1 a2 
1  b  b1 b2 
2  a  a1 NaN 
3  b NaN NaN 

data3.loc[~data3[['compid','secid']].isnull().any(1), 'url'] = 
'http:aaa.aspx?compid=' + data3.compid.astype(str) + '&secid=' + data3.secid.astype(str) 

data3.fillna('', inplace=True) 
print (data3) 

    company compid secid        url 
0  a  a1 a2 http:aaa.aspx?compid=a1&secid=a2 
1  b  b1 b2 http:aaa.aspx?compid=b1&secid=b2 
2  a  a1           
3  b            
Verwandte Themen