This question is same to this posted earlier. I want to concatenate three columns instead of concatenating two columns:
Here is the combining two columns:
df = DataFrame({'foo':['a','b','c'], 'bar':[1, 2, 3], 'new':['apple', 'banana', 'pear']})
df['combined']=df.apply(lambda x:'%s_%s' % (x['foo'],x['bar']),axis=1)
df
bar foo new combined
0 1 a apple a_1
1 2 b banana b_2
2 3 c pear c_3
I want to combine three columns with this command but it is not working, any idea?
df['combined']=df.apply(lambda x:'%s_%s' % (x['bar'],x['foo'],x['new']),axis=1)
you can simply do:
If you concatenate with string('_') please you convert the column to string which you want and after you can concatenate the dataframe.
Another solution using
DataFrame.apply()
, with slightly less typing and more scalable when you want to join more columns:If you have even more columns you want to combine, using the Series method
str.cat
might be handy:Basically, you select the first column (if it is not already of type
str
, you need to append.astype(str)
), to which you append the other columns (separated by an optional separator character).X= x is any delimiter (eg: space) by which you want to separate two merged column.
I think you are missing one %s