Closed webgisdeveloper closed 1 year ago
Don't use apply() for an if-else ladder np.select seems the best approach
conds = [(df['eri_hispanic'] == 1),(df[['eri_afr_amer', 'eri_asian', 'eri_hawaiian', 'eri_nat_amer', 'eri_white']].sum(1).gt(1)),(df['eri_nat_amer'] == 1),(df['eri_asian'] == 1),(df['eri_afr_amer'] == 1),(df['eri_hawaiian'] == 1),(df['eri_white'] == 1,])
actions = ['Hispanic', 'Two Or More', 'A/I AK Native', 'Asian', 'Black/AA', 'Haw/Pac Isl.', 'White']
df['label_race'] = np.select(conds,actions,default='Other')
test data put it under MoM.zip ~/Projects/testarea
identical outputs, Final_Alert.zip
ready to merge back
it is too slow, need to a better rewriting with pandas