Pankaj Singh
Pankaj Singh

Reputation: 586

How to update/create column in pandas based on values in a list

So, here is my dataframe

import pandas as pd
cols = ['Name','Country','Income']
vals = [['Steve','USA',40000],['Matt','UK',40000],['John','USA',40000],['Martin','France',40000],]
x = pd.DataFrame(vals,columns=cols)

I have another list:

europe = ['UK','France']

I want to create a new column 'Continent' if x.Country is in europe

Upvotes: 8

Views: 7825

Answers (2)

BENY
BENY

Reputation: 323386

Or you can using isin directly

x['New Column']='Not Europe'
x.loc[x.Country.isin(europe),'New Column']='Europe'

Out[612]: 
     Name Country  Income  New Column
0   Steve     USA   40000  Not Europe
1    Matt      UK   40000      Europe
2    John     USA   40000  Not Europe
3  Martin  France   40000      Europe

Upvotes: 8

jezrael
jezrael

Reputation: 863711

You need numpy.where with condition with isin:

x['Continent'] = np.where(x['Country'].isin(europe), 'Europe', 'Not Europe')
print (x)
     Name Country  Income   Continent
0   Steve     USA   40000  Not Europe
1    Matt      UK   40000      Europe
2    John     USA   40000  Not Europe
3  Martin  France   40000      Europe

Upvotes: 15

Related Questions