Pandas : Comment remplacer inf par Max Value



Vous pouvez utiliser les méthodes suivantes pour remplacer les valeurs inf et -inf par la valeur maximale dans un DataFrame pandas :

Méthode 1 : remplacer inf par la valeur maximale dans une colonne

#find max value of column
max_value = np.nanmax(df['my_column'][df['my_column'] != np.inf])

#replace inf and -inf in column with max value of column 
df['my_column'].replace([np.inf, -np.inf], max_value, inplace=True)

Méthode 2 : remplacer inf par la valeur maximale dans toutes les colonnes

#find max value of entire data frame
max_value = np.nanmax(df[df != np.inf])

#replace inf and -inf in all columns with max value
df.replace([np.inf, -np.inf], max_value, inplace=True)

Les exemples suivants montrent comment utiliser cette syntaxe en pratique avec le DataFrame pandas suivant :

import pandas as pd
import numpy as np

#create DataFrame
df = pd.DataFrame({'points': [18, np.inf, 19, np.inf, 14, 11, 20, 28],
                   'assists': [5, 7, 7, 9, 12, 9, 9, np.inf],
                   'rebounds': [np.inf, 8, 10, 6, 6, -np.inf, 9, 12]})

#view DataFrame
print(df)

   points  assists  rebounds
0    18.0      5.0       inf
1     inf      7.0       8.0
2    19.0      7.0      10.0
3     inf      9.0       6.0
4    14.0     12.0       6.0
5    11.0      9.0      -inf
6    20.0      9.0       9.0
7    28.0      inf      12.0

Exemple 1 : Remplacer inf par la valeur maximale dans une colonne

Le code suivant montre comment remplacer les valeurs inf et -inf dans la colonne rebonds par la valeur maximale de la colonne rebonds :

#find max value of rebounds
max_value = np.nanmax(df['rebounds'][df['rebounds'] != np.inf])

#replace inf and -inf in rebounds with max value of rebounds
df['rebounds'].replace([np.inf, -np.inf], max_value, inplace=True)

#view updated DataFrame
print(df)

   points  assists  rebounds
0    18.0      5.0      12.0
1     inf      7.0       8.0
2    19.0      7.0      10.0
3     inf      9.0       6.0
4    14.0     12.0       6.0
5    11.0      9.0      12.0
6    20.0      9.0       9.0
7    28.0      inf      12.0

Notez que chaque valeur inf et -inf dans la colonne rebonds a été remplacée par la valeur maximale dans cette colonne de 12 .

Exemple 2 : remplacez inf par la valeur maximale dans toutes les colonnes

Le code suivant montre comment remplacer les valeurs inf et -inf de chaque colonne par la valeur maximale de l’ensemble du bloc de données :

#find max value of entire data frame
max_value = np.nanmax(df[df != np.inf])

#replace all inf and -inf with max value
df.replace([np.inf, -np.inf], max_value, inplace=True)

#view updated DataFrame
print(df)

   points  assists  rebounds
0    18.0      5.0      28.0
1    28.0      7.0       8.0
2    19.0      7.0      10.0
3    28.0      9.0       6.0
4    14.0     12.0       6.0
5    11.0      9.0      28.0
6    20.0      9.0       9.0
7    28.0     28.0      12.0

Notez que chaque valeur inf et -inf dans chaque colonne a été remplacée par la valeur maximale dans l’ensemble du bloc de données de 28 .

Ressources additionnelles

Les didacticiels suivants expliquent comment effectuer d’autres tâches courantes dans les pandas :

Comment imputer les valeurs manquantes chez les pandas
Comment compter les valeurs manquantes chez les pandas
Comment remplir les valeurs NaN avec la moyenne chez les pandas

Ajouter un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *