Lors de la normalisation des données à l'aide du StandardScaler de scikit-learn, l'erreur suivante peut se produire.
input
from sklearn.preprocessing import StandardScaler
#Données d'entraînement (pandas.Type de DataFrame)
X = training_data()
#Standardisation
sc = StandardScaler()
sc.fit(X)
output
ValueError: Input contains NaN, infinity or a value too large for dtype('float64').
Pour éviter cela, il est nécessaire de supprimer NaN et l'infini des données d'entrée.
Par exemple, le code ci-dessous peut supprimer une colonne contenant au moins un NaN de X.
#Supprimer les colonnes contenant NaN de X
X.drop(X.columns[np.isnan(X).any()], axis=1)
Description de chaque fonction
--np.isnan (X): Get True pour les éléments NaN, False pour les autres éléments --np.isnan (X) .any (): obtient une liste de True pour les colonnes contenant NaN et False pour les autres colonnes --X.columns [np.isnan (X) .any ()]: Récupère les noms de colonnes contenant NaN --X.drop ('col', axis = 1): Supprime une colonne avec le nom de colonne col de X
Recommended Posts