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)
By use + operator simply you can concatenate two or multiple text/string columns in pandas DataFrame. Note that when you apply + operator on numeric columns it actually does addition instead of concatenation.
To start, you may use this template to concatenate your column values (for strings only): df['New Column Name'] = df['1st Column Name'] + df['2nd Column Name'] + ... Notice that the plus symbol ('+') is used to perform the concatenation.
Another solution using DataFrame.apply()
, with slightly less typing and more scalable when you want to join more columns:
cols = ['foo', 'bar', 'new'] df['combined'] = df[cols].apply(lambda row: '_'.join(row.values.astype(str)), axis=1)
you can simply do:
In[17]:df['combined']=df['bar'].astype(str)+'_'+df['foo']+'_'+df['new'] In[17]:df Out[18]: bar foo new combined 0 1 a apple 1_a_apple 1 2 b banana 2_b_banana 2 3 c pear 3_c_pear
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With