Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Add new column in Pandas DataFrame Python [duplicate]

I have dataframe in Pandas for example:

Col1 Col2 A     1  B     2 C     3 

Now if I would like to add one more column named Col3 and the value is based on Col2. In formula, if Col2 > 1, then Col3 is 0, otherwise would be 1. So, in the example above. The output would be:

Col1 Col2 Col3 A    1    1 B    2    0 C    3    0 

Any idea on how to achieve this?

like image 747
Santiago Munez Avatar asked Sep 22 '13 09:09

Santiago Munez


People also ask

Can pandas DataFrame have duplicate columns?

You can use DataFrame. duplicated () without any arguments to drop columns with the same values on all columns.

How do you add a new column to a constant in pandas?

In pandas you can add a new constant column with a literal value to DataFrame using assign() method, this method returns a new Dataframe after adding a column. insert() is also used to update the existing DataFrame with a new constant column.


1 Answers

You just do an opposite comparison. if Col2 <= 1. This will return a boolean Series with False values for those greater than 1 and True values for the other. If you convert it to an int64 dtype, True becomes 1 and False become 0,

df['Col3'] = (df['Col2'] <= 1).astype(int) 

If you want a more general solution, where you can assign any number to Col3 depending on the value of Col2 you should do something like:

df['Col3'] = df['Col2'].map(lambda x: 42 if x > 1 else 55) 

Or:

df['Col3'] = 0 condition = df['Col2'] > 1 df.loc[condition, 'Col3'] = 42 df.loc[~condition, 'Col3'] = 55 
like image 154
Viktor Kerkez Avatar answered Oct 03 '22 19:10

Viktor Kerkez