Global-Flood-Assessment / MoMProduction

Production setup for ModelofModels
1 stars 1 forks source link

The performance issue for final output #55

Closed webgisdeveloper closed 1 year ago

webgisdeveloper commented 1 year ago

it is too slow, need to a better rewriting with pandas

webgisdeveloper commented 1 year ago

https://stackoverflow.com/questions/26886653/create-new-column-based-on-values-from-other-columns-apply-a-function-of-multi

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')
webgisdeveloper commented 1 year ago

test data put it under MoM.zip ~/Projects/testarea

webgisdeveloper commented 1 year ago

identical outputs, Final_Alert.zip

webgisdeveloper commented 1 year ago

ready to merge back