Remplacer les valeurs des colonnes dans Pandas DataFrame
-
Utiliser la méthode
map()
pour remplacer les valeurs de colonnes dans les Pandas -
Utilisez la méthode
loc
pour remplacer la valeur de la colonne dans Pandas - Remplacer les valeurs des colonnes par des conditions dans Pandas DataFrame
-
Utilisez la méthode
replace()
pour modifier les valeurs
Dans ce tutoriel, nous allons présenter comment remplacer les valeurs des colonnes dans Pandas DataFrame. Nous couvrirons trois fonctions différentes pour remplacer facilement les valeurs des colonnes.
Utiliser la méthode map()
pour remplacer les valeurs de colonnes dans les Pandas
Les colonnes de DataFrame sont des Series
de pandas. Nous pouvons utiliser la méthode map
pour remplacer chaque valeur d’une colonne par une autre valeur.
Syntaxe Series.map()
Syntaxe
Series.map(arg, na_action=None)
- Paramètres :
arg
: ce paramètre est utilisé pour cartographier uneSeries
. Il peut s’agir d’une collection ou d’une fonction.na_action
: Il est utilisé pour traiter les valeursNaN
(Not a Number). Il peut prendre deux valeurs -None
ouignore
.None
est la valeur par défaut, etmap()
appliquera le mapping à toutes les valeurs, y compris les valeursNan
;ignore
laisse les valeursNaN
telles quelles dans la colonne sans les passer à la méthode de mapping.
Il retourne une Series
avec le même index.
Prenons maintenant un exemple pour implémenter la méthode de map
. Nous utiliserons le même DataFrame
dans les exemples ci-dessous.
import pandas as pd
import numpy as np
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"city": ["berlin", "paris", "roma", np.nan],
}
df = pd.DataFrame(data, columns=["name", "city"])
print(df)
Production :
name city
0 michael berlin
1 louis paris
2 jack roma
3 jasmine NaN
Remplacer les valeurs des colonnes par la collecte dans Pandas DataFrame
import pandas as pd
import numpy as np
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"city": ["berlin", "paris", "roma", np.nan],
}
df = pd.DataFrame(data, columns=["name", "city"])
# replace column values with collection
df["city"] = df["city"].map(
{"berlin": "dubai", "paris": "moscow", "roma": "milan", np.nan: "NY"},
na_action=None,
)
print(df)
Production :
name city
0 michael dubai
1 louis moscow
2 jack milan
3 jasmine NY
Les valeurs des colonnes originales de la DataFrame city
sont remplacées par les nouvelles valeurs du dictionnaire comme premier paramètre de la méthode map()
.
Remplacement des valeurs de colonne par une fonction dans Pandas DataFrame
import pandas as pd
import numpy as np
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"city": ["berlin", "paris", "roma", np.nan],
}
df = pd.DataFrame(data, columns=["name", "city"])
# replace column values with function
df["city"] = df["city"].map("I am from {}".format)
print(df)
Production :
name city
0 michael I am from berlin
1 louis I am from paris
2 jack I am from roma
3 jasmine I am from nan
La na_action
est None
par défaut, c’est pourquoi la NaN
dans la colonne originale est également remplacée par la nouvelle chaîne I am from nan
.
Si vous préférez garder le NaN
mais pas le remplacer, vous pouvez définir le na_action
comme ignore
.
import pandas as pd
import numpy as np
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"city": ["berlin", "paris", "roma", np.nan],
}
df = pd.DataFrame(data, columns=["name", "city"])
# replace column values excluding NaN
df["city"] = df["city"].map("I am from {}".format, na_action="ignore")
print(df)
Production :
name city
0 michael I am from berlin
1 louis I am from paris
2 jack I am from roma
3 jasmine NaN
Utilisez la méthode loc
pour remplacer la valeur de la colonne dans Pandas
Une autre façon de remplacer la valeur de la colonne Pandas DataFrame est la méthode loc()
de la DataFrame
. La méthode loc()
accède aux valeurs par le biais de leurs étiquettes.
Syntaxe de DataFrame.loc[]
pandas.DataFrame.loc[condition, column_label] = new_value
- Paramètres :
condition
: ce paramètre retourne les valeurs qui rendent la condition vraiecolumn_label
: ce paramètre est utilisé pour spécifier la colonne ciblée à mettre à jour
Après avoir déterminé la valeur par le biais des paramètres, nous la mettons à jour en new_value
.
Prenons maintenant un exemple pour implémenter la méthode loc
. Nous utiliserons le DataFrame
ci-dessous comme exemple.
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"grades": [30, 70, 40, 80],
"result": ["N/A", "N/A", "N/A", "N/A"],
}
df = pd.DataFrame(data, columns=["name", "grades", "result"])
print(df)
Production :
name grades result
0 michael 30 N/A
1 louis 70 N/A
2 jack 40 N/A
3 jasmine 80 N/A
Remplacer les valeurs des colonnes par des conditions dans Pandas DataFrame
Nous pouvons utiliser des conditions booléennes pour préciser les éléments visés.
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"grades": [30, 70, 40, 80],
"result": ["N/A", "N/A", "N/A", "N/A"],
}
df = pd.DataFrame(data, columns=["name", "grades", "result"])
df.loc[df.grades > 50, "result"] = "success"
df.loc[df.grades < 50, "result"] = "fail"
print(df)
Production :
name grades result
0 michael 30 fail
1 louis 70 success
2 jack 40 fail
3 jasmine 80 success
df.loc[df.grades>50, 'result']='success'
remplace les valeurs dans la colonne grades
par success
si les valeurs sont supérieures à 50.
df.loc[df.grades<50,'result']='fail'
remplace les valeurs de la colonne grades
par fail
si les valeurs sont inférieures à 50.
Utilisez la méthode replace()
pour modifier les valeurs
Une autre façon de remplacer les valeurs des colonnes dans Pandas DataFrame est la méthode Series.replace()
.
Syntaxe Series.replace()
- Remplacer une seule valeur
df[column_name].replace([old_value], new_value)
- Remplacer plusieurs valeurs par la même valeur
df[column_name].replace([old_value1, old_value2, old_value3], new_value)
- Remplacer les valeurs multiples par des valeurs multiples
df[column_name].replace(
[old_value1, old_value2, old_value3], [new_value1, new_value2, new_value3]
)
- Remplacer une valeur par une nouvelle valeur pour l’ensemble du DataFrame
df.replace([old_value], new_value)
Nous utiliserons le DataFrame ci-dessous pour le reste des exemples.
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"salary": [700, 800, 1000, 1200],
}
df = pd.DataFrame(data, columns=["name", "salary"])
print(df)
Production :
name salary
0 michael 700
1 louis 800
2 jack 1000
3 jasmine 1200
Remplacer les valeurs des colonnes par des valeurs multiples dans le DataFrame de Pandas
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"salary": [700, 800, 1000, 1200],
}
df = pd.DataFrame(data, columns=["name", "salary"])
df["name"] = df["name"].replace(["michael", "louis"], ["karl", "lionel"])
print(df)
Production :
name salary
0 karl 700
1 lionel 800
2 jack 1000
3 jasmine 1200
Remplacer les valeurs des colonnes par la même valeur dans Pandas DataFrame
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"salary": [700, 800, 1000, 1200],
}
df = pd.DataFrame(data, columns=["name", "salary"])
df["salary"] = df["salary"].replace([1000, 1200], 1500)
print(df)
Production :
name salary
0 karl 700
1 lionel 800
2 jack 1500
3 jasmine 1500
Remplacer la valeur de la colonne par une valeur dans Pandas DataFrame
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"salary": [700, 800, 1000, 1200],
}
df = pd.DataFrame(data, columns=["name", "salary"])
df["salary"] = df["salary"].replace([700], 750)
print(df)
Production :
name salary
0 karl 750
1 lionel 800
2 jack 1000
3 jasmine 1200
Remplacer les valeurs dans l’ensemble du DataFrame de Pandas
import pandas as pd
data = {
"name": ["michael", "louis", "jack", "jasmine"],
"salary": [700, 800, 1000, 1000],
}
df = pd.DataFrame(data, columns=["name", "salary"])
df = df.replace([1000], 1400)
print(df)
Production :
name salary
0 karl 750
1 lionel 800
2 jack 1400
3 jasmine 1400
Article connexe - Pandas DataFrame
- Comment obtenir les en-têtes de colonne de Pandas DataFrame sous forme de liste
- Comment supprimer une colonne de Pandas DataFrame
- Comment convertir la colonne DataFrame en date-heure dans Pandas
- Comment convertir un float en un entier dans Pandas DataFrame
- Comment trier le DataFrame de Pandas par les valeurs d'une colonne
- Comment obtenir l'agrégat des Pandas par groupe et par somme