Fonction df.rename() de Pandas
df.rename()est une fonction de Pandas utilisée pour renommer les noms de colonnes ou l’index d’un DataFrame.
Dans l’analyse de données, des noms de colonnes et des index clairs sont très importants pour la lisibilité et la maintenabilité du code.rename()Il permet de modifier de manière flexible les noms de colonnes et les noms d’index, ce qui rend les données plus standardisées et plus faciles à comprendre. Cela est particulièrement utile lors de l’importation, du nettoyage et de la génération de rapports.
Syntaxe de base et paramètres
rename()est une fonction membre de DataFrame, appelée via l'opérateur point.pour l'invoquer.
Format de syntaxe
DataFrame.rename(mapper=None, index=None, columns=None, axis=None, inplace=False, errors='ignore')
Description des paramètres
| Paramètre | Type | Requis | Description | Valeur par défaut |
|---|---|---|---|---|
| mapper | dict ou fonction | Optional | Règles de mappage pour renommer un axe (index de lignes ou noms de colonnes). Peut être un dictionnaire ou une fonction. Utilisé avec leaxisparamètre. |
Aucune |
| index | dict ou fonction | Optional | Spécifiez directement les règles de renommage pour l'index des lignes. Prédomine surmapperetaxis。 |
Aucune |
| columns | dict ou fonction | Optional | Spécifiez directement les règles de renommage pour les noms de colonnes. Prédomine surmapperetaxis。 |
Aucune |
| axis | int ou str | Optional | Spécifie l'axe à renommer.0ou'index'représente l'index des lignes;1ou'columns'représente les noms de colonnes. |
Aucune |
| inplace | bool | Optional | Si défini surTrue, il modifie directement le DataFrame d'origine et ne renvoie aucun nouvel objet; s'il est défini surFalse, un nouveau DataFrame est renvoyé, et les données d'origine restent inchangées. |
False |
| errors | str | Optional | Contrôle la gestion des erreurs.'raise'signifie qu'une exception est levée lorsque la clé correspondante n'est pas trouvée;'ignore'signifie que les clés inexistantes sont ignorées. |
'ignore' |
Description de la valeur de retour
- Renvoie un nouveau DataFrame (si
inplace=False), ouNone(siinplace=True)。 - Dans le DataFrame renvoyé, les noms de colonnes ou l'index ont été renommés.
Exemples
Maîtrisons à fond à travers une série d'exemplesrename()l'utilisation de.
Exemple 1: Renommer les noms de colonnes
Utilisez lacolumnsparamètre pour renommer facilement les noms de colonnes.
Exemple
# Créer un DataFrame
data = {
'name': ['Zhang San', 'Li Si', 'Wang Wu'],
'age': [25, 30, 35],
'salary': [5000, 6000, 7000]
}
df = pd.DataFrame(data)
print("Données d'origine :")
print(df)
print("=" * 50)
# Utiliser un dictionnaire pour renommer les noms de colonnes
df_renamed = df.rename(columns={
'name': 'Name',
'age': 'age',
'salary': 'Salary'
})
print("Données après renommage des noms de colonnes :")
print(df_renamed)
Sortie attendue :
原始数据:
name age salary
0 张三 25 5000
1 李四 30 6000
2 王五 35 7000
==================================================
重命名列名后的数据:
姓名 年龄 薪资
0 张三 25 5000
1 李四 30 6000
2 王五 35 7000
Explication du code :
- Les noms de colonnes des données d'origine sont en anglais, et nous utilisons un dictionnaire pour les renommer en chinois.
- En utilisant la
columnsle paramètre n'affecte que les noms de colonnes, pas l'index des lignes. - Il s'agit d'une opération courante de normalisation de données.
Exemple 2: Renommer l'index des lignes
Utilisez laindexparamètre pour renommer l'index des lignes.
Exemple
# Créer un DataFrame avec un index par défaut
data = {
Fruit: [Pomme, Banane, Orange],
'Quantity': [10, 20, 15]
}
df = pd.DataFrame(data)
print("Données originales (index par défaut):")
print(df)
print("=" * 50)
# Utiliser un dictionnaire pour renommer l'index des lignes
df_renamed = df.rename(index={
0: 'Première ligne',
1: 'Deuxième ligne',
2: 'Troisième ligne'
})
print("Données après renommage de l'index des lignes:")
print(df_renamed)
Sortie attendue :
原始数据(默认索引):
水果 数量
0 苹果 10
1 香蕉 20
2 橙子 15
==================================================
重命名行索引后的数据:
水果 数量
第一行 苹果 10
第二行 香蕉 20
第三行 橙子 15
Explication du code :
- L'index des lignes des données d'origine est composé de nombres comme 0, 1, 2.
- En utilisant la
indexparamètre peut les renommer pour leur donner des noms plus significatifs. - Ceci est particulièrement utile lors de la génération de rapports.
Exemple 3: Renommer à la fois les noms de colonnes et l'index des lignes
Il peut renommer les noms de colonnes et l'index des lignes en même temps.
Exemple
# Créer un DataFrame
data = {
'A': [1, 2, 3],
'B': [4, 5, 6]
}
df = pd.DataFrame(data, index=['x', 'y', 'z'])
print("Données d'origine :")
print(df)
print("=" * 50)
# Renommer à la fois les noms de colonnes et l'index des lignes
df_renamed = df.rename(columns={'A': Column A, 'B': Column B}, index={'x': Row X, 'y': Row Y, 'z': Row Z})
print("Données après renommage:")
print(df_renamed)
Sortie attendue :
原始数据:
A B
x 1 4
y 2 5
z 3 6
==================================================
重命名后的数据:
列A 列B
行X 1 4
行Y 2 5
行Z 3 6
Explication du code :
- Vous pouvez utiliser les deux
columnsetindexparamètres. - C'est très pratique lors de l'importation et de la normalisation des données.
Exemple 4 : Utilisation d'une fonction pour renommer
rename()Il accepte également une fonction comme paramètre, ce qui permet la transformation par lots des noms de colonnes ou de l'index.
Exemple
# Créer un DataFrame avec des noms de colonnes relativement complexes
data = {
'USER_NAME': ['Zhang San', 'Li Si'],
'USER_AGE': [25, 30],
'USER_SALARY': [5000, 6000]
}
df = pd.DataFrame(data)
print("Données d'origine :")
print(df)
print("=" * 50)
# Utiliser une fonction pour convertir les noms de colonnes en minuscules
df_lower = df.rename(columns=str.lower)
print("Après conversion des noms de colonnes en minuscules :")
print(df_lower)
print("=" * 50)
# Utiliser une fonction pour supprimer le préfixe (par ex., USER_)
df_clean = df.rename(columns=lambda x: x.replace('USER_', ''))
print("Après suppression du préfixe :")
print(df_clean)
print("=" * 50)
# Utiliser une fonction pour ajouter un préfixe
df_prefix = df.rename(columns=lambda x: 'col_' + x)
print("Après ajout du préfixe :")
print(df_prefix)
Sortie attendue :
原始数据: USER_NAME USER_AGE USER_SALARY 0 张三 25 5000 1 李四 30 6000 列名转小写后: user_name user_age user_salary 0 张三 25 数据清洗 1 李四 30 6000 ================================================== 去除前缀后: NAME AGE SALARY 0 张三 25 5000 1 李四 30 6000
Explication du code :
str.lowerest la méthode de mise en minuscules pour les chaînes de caractères.- Utilisation
lambdales fonctions peuvent gérer de manière flexible des règles de nommage complexes. - Cette méthode convient au traitement par lots d'un grand nombre de noms de colonnes.
Exemple 5 : Utilisation du paramètre inplace pour une modification en place
Utiliserinplace=Truepour modifier directement le DataFrame d'origine sans renvoyer un nouvel objet.
Exemple
# Créer un DataFrame
data = {
'name': ['Zhang San', 'Li Si'],
'age': [25, 30]
}
df = pd.DataFrame(data)
print("Données d'origine :")
print(df)
print(f"ID des données d'origine : {id(df)}")
print("=" * 50)
# Utiliser inplace=True pour modifier sur place
df.rename(columns={'name': 'Name', 'age': 'age'}, inplace=True)
print("Données après modification avec inplace=True :")
print(df)
print(f"ID des données modifiées : {id(df)}")
Sortie attendue :
原始数据:
name age
0 张三 25
1 李四 30
原始数据 id: 140234567890
==================================================
使用 inplace=True 修改后的数据:
姓名 年龄
0 张三 25
1 李四 30
修改后数据 id: 140234567890 # 同一个对象
Explication du code :
- Utilisation
inplace=Trueaprès, l'adresse mémoire (id) du DataFrame reste inchangée, ce qui indique une modification sur place. - Cette méthode peut économiser de la mémoire, en particulier lorsqu'on travaille avec de grands jeux de données.
Exemple 6 : Gestion des noms de colonnes inexistants
Utilisez laerrorsparamètre pour contrôler le comportement lorsque les noms de colonnes n'existent pas.
Exemple
# Créer un DataFrame
data = {
'A': [1, 2, 3],
'B': [4, 5, 6]
}
df = pd.DataFrame(data)
print("Données d'origine :")
print(df)
print("=" * 50)
# Tentative de renommer une colonne inexistante, en utilisant errors='ignore' (par défaut)
df_renamed = df.rename(columns={'C': 'C_new'}) # La colonne C n'existe pas
print("Renommage d'une colonne inexistante (C) avec le comportement par défaut :")
print(df_renamed) # Aucun changement ne se produira
print("=" * 50)
# Tentative de renommer une colonne inexistante, en utilisant errors='raise'
try:
df_renamed2 = df.rename(columns={'C': 'C_new'}, errors='raise')
except KeyError as e:
print(f"Exception levée : {e}")
Sortie attendue :
原始数据: A B 0 1 4 1 2 5 2 3 6 ================================================== 重命名不存在的列(C),使用默认行为: A B 0 1 4 1 2 5 2 3 6 # 无变化 ==================================================errors ================================================== 抛出异常: 'C'
Explication du code :
- Par défaut (
errors='ignore'), si une colonne n'existe pas, aucun changement ne se produira et aucune erreur ne sera levée. - Si défini sur
errors='raise', une exception sera levée.KeyErrorexception.
Exemple 7 : Utilisation du paramètre axis
UtiliseraxisLe paramètre permet une spécification plus flexible des axes à renommer.
Exemple
# Créer un DataFrame
data = {
'col1': [1, 2, 3],
'col2': [4, 5, 6]
}
df = pd.DataFrame(data, index=['row1', 'row2', 'row3'])
print("Données d'origine :")
print(df)
print("=" * 50)
# Utiliser axis='columns' pour renommer les colonnes
df_renamed_cols = df.rename({'col1': 'First column', 'col2': 'Second column'}, axis='columns')
print("After renaming columns with axis='columns':")
print(df_renamed_cols)
print("=" * 50)
# Utiliser axis='index' pour renommer l'index des lignes
df_renamed_idx = df.rename({'row1': 'Première ligne', 'row2': 'Deuxième ligne', 'row3': 'Troisième ligne'}, axis='index')
print("Après avoir renommé les lignes avec axis='index' :")
print(df_renamed_idx)
Sortie attendue :
原始数据:
col1 col2
row1 1 4
row2 2 5
row3 3 6
==================================================
使用 axis='columns' 重命名列后:
第一列 第二列
row1 1 4
row2 2 5
row3 3 6
Explication du code :
axis='columns'ouaxis=1Signifie opérer sur les colonnes.axis='index'ouaxis=0Signifie opérer sur les indices de lignes.- Cette syntaxe est cohérente avec le style de NumPy.
rename()Par défaut, le DataFrame d'origine n'est pas modifié. Pour le modifier sur place, utilisezinplace=Trueparamètre.- Il est préférable d'utiliser
columnsetindexle paramètre au lieu demapperetaxis, car le premier est plus clair et plus facile à comprendre. - Lorsque vous utilisez une fonction pour renommer, assurez-vous que la fonction renvoie un type chaîne de caractères, sinon cela peut provoquer des erreurs.
- Lorsque vous travaillez avec de grands ensembles de données, l'utilisation de
inplace=Truepeut économiser de la mémoire. - Avant de renommer, il est recommandé de vérifier les noms de colonnes actuels. Vous pouvez utiliser
df.columnspour les afficher.
Notes
Autres extensions
Fonctions Pandas courantes