jam
jam

Reputation: 567

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

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!

Upvotes: 12

Views: 24156

Answers (3)

MarcinKamil
MarcinKamil

Reputation: 155

If you want one-liner:

df['var3'] = df[['var1', 'var2']].astype(str).apply(lambda x: ''.join(x), axis=1)

Upvotes: 0

jezrael
jezrael

Reputation: 863146

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

Upvotes: 17

Ani Menon
Ani Menon

Reputation: 28239

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)

Upvotes: 1

Related Questions