Concatenate two numerical values to make a new column using pandas?

13,678

Solution 1

You can use simple concatenate by + with casting by astype:

df['var3'] = df.var1.astype(str) + df.var2.astype(str)
print df
  var1 var2   var3
0   01  001  01001

If type of both columns is string casting is omited:

print type(df.loc[0,'var1'])
<type 'str'>
print type(df.loc[0,'var2'])
<type 'str'>

df['var3'] = df.var1 + df.var2
print df
  var1 var2   var3
0   01  001  01001

Solution 2

Convert to both columns to string and then join both the columns to form the third column.

Code:

df['var1']=df['var1'].astype(str)
df['var2']=df['var2'].astype(str)
df['var3'] = df[['var1', 'var2']].apply(lambda x: ''.join(x), axis=1)
Share:
13,678
jam
Author by

jam

Updated on July 19, 2022

Comments

  • jam
    jam almost 2 years

    I have two columns in my dataframe.

    var1    var2
    01       001
    

    I would like to create a third column that joins them together:

    var1    var2    var3
    01       001    01001
    

    Does anyone know how to do this? Thank you!