J'ai des fichiers avec des cellules =-inf. J'ai essayé de l'enlever avec :

.replace(np.inf, 0).replace(np.nan,0)

Cependant, il reste là, je vérifie également si la trame de données a un nombre infini avec:

df.isnull().values.any() np.all(np.isfinite(df))

Mais aucun d'entre eux ne trouve =-inf ou NA.

Comment remplacer ce genre de problème par Python ?

enter image description here

enter image description here

ÉDITER: Téléchargez le fichier csv actuel ici : https://drive.google.com/file/d/ 1ol_DfiUbkybLx-ksne3rszyODTARzMJM/view?usp=partage

df = pd.read_csv('test.csv')
labels = np.array(df['class'])

features= df.drop('class', axis = 1)
feature_list = list(features.columns)
features = np.array(df)

clf= RandomForestClassifier(n_estimators=100, random_state=20)
scores = cross_val_score(clf, features, labels, cv=10)
0
Guilherme Felipe Reis 16 mars 2019 à 19:28

2 réponses

Meilleure réponse

Le problème est négatif infini, il faut donc le remplacer :

df = df.replace(-np.inf, 0)

Une solution plus générale est:

df = df.replace([np.inf, -np.inf], 0).fillna(0)
1
jezrael 16 mars 2019 à 16:50

np.NINF est l'infini négatif. Remplacez-le simplement par 0.

df = df.replace(np.NINF, 0)
1
darksky 16 mars 2019 à 16:50