Existe-t-il une manière élégante de gérer les valeurs None dans la conversion d'une liste de tuples en une recarray numérique en utilisant l'appel unique à np.rec.fromrecords? En supposant que je sais ce que je veux la valeur manquante soit (par exemple -1 pour les entiers), comment puis-je attraper et manipuler l'exemple ci-dessous artificiel:gestion Aucune valeurs dans la conversion en numpy recarray
import numpy as np
a = [('Bob', 40, 3.14), ('Sue', 38, 6.28), ('Jim', None, 9.42)]
dtype = [('NAME', 'S10'), ('AGE', np.int32), ('SCORE', np.float64)]
try:
b = np.rec.fromrecords(a, dtype=dtype)
except TypeError:
# Convert None to 0 for AGE field here instead of raising the error
raise TypeError('Caught a TypeError')
Je devine que je dois faire sur une par champ afin d'éviter de manquer les True TypeErrors ailleurs dans le recarray. Est-il possible d'isoler où (c'est-à-dire quels champs) dans le recarray je veux que cette conversion s'applique. Mon cas d'utilisation réel est la conversion des enregistrements pyodbc en recarrays numpy.
Contre quelles sources de données (Oracle, SQL Server, etc.) les appels pyodbc sont-ils effectués et la requête peut-elle être modifiée? – Bryan
Contre SQL Server. Je pense que je comprends ce que vous dites, c'est à dire. utilisez CAST pour convertir les NULL en -1 sur le DB. Ça a du sens. – grovduck