left = (df['age'].values <= bins[:, (None)]).T.astype(int)
dl = pd.DataFrame(left, columns=['(-inf, {}]'.format(b) for b in bins])
Create open bounds indicators from pandas get_dummies on discretized numerical