Quelle est la meilleure et, je l'espère, la plus simple façon d'écrire sur les NaN, en notant également les différents cas ?
Dans cet exemple df
Je veux remplacer les NaNs dans Routed (Expected) Site
en fonction de la logique de l'entreprise :
DBN DBN - Exam Routed (Expected) Site
00000A 00000A - Scie A00000
750000 750000 - Scie NaN
840000 840000 - Scie NaN
Je veux
DBN DBN - Exam Routed (Expected) Site
00000A 00000A - Scie A00000
750000 750000 - Scie 75 (Hospital)
840000 840000 - Scie 84 (Charter)
J'utilise ce code qui, en fait, n'indique pas de quel cas il s'agit :
df['Routed (Expected) Site'].fillna('Charter or Hospital',inplace=True)
J'ai également essayé ceci qui, d'une certaine manière, a annulé tous les Routed (Expected) Site
avec None
:
def routed_site_exceptions(DBN, routed_site):
DBN = str(DBN)
if DBN.startswith("84") and not routed_site:
return '84 (Charter)'
if DBN.startswith('75') and not routed_site:
return '75 (Hospital)'
df['Routed (Expected) Site'] = np.vectorize(routed_site_exceptions)(df['DBN'],
df['Routed (Expected) Site'])