method 1
sample.housing.eq('yes').mul(1)
method 2
pd.Series(np.where(sample.housing.values == 'yes', 1, 0),
sample.index)
method 3
sample.housing.map(dict(yes=1, no=0))
method 4
pd.Series(map(lambda x: dict(yes=1, no=0)[x],
sample.housing.values.tolist()), sample.index)
method 5
pd.Series(np.searchsorted(['no', 'yes'], sample.housing.values), sample.index)
All yield
0 0
1 0
2 1
3 0
4 0
5 0
6 0
7 0
8 1
9 1
timing
given sample
timing
long sample
sample = pd.DataFrame(dict(housing=np.random.choice(('yes', 'no'), size=100000)))