Santiago Munez - 5 months ago 29

Python Question

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?

Answer

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 the `Col3`

depending on the value of the `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
```