Fonction df.dropna() de Pandas
df.dropna()est une fonction dans Pandas utilisée pour supprimer les lignes ou colonnes contenant des valeurs manquantes.
) est un problème courant.NaN、NoneouNULLLa fonction offre un moyen simple de nettoyer les données. Vous pouvez choisir de supprimer les lignes ou colonnes contenant des valeurs manquantes, ou de filtrer les données en fonction de la proportion de valeurs manquantes.dropna()Syntaxe de base et paramètres
Syntaxe de base et paramètres
dropna()pour appeler..Format de syntaxe
Format de syntaxe
DataFrame.dropna(axis=0, how='any', thresh=None, subset=None, inplace=False)
Description du paramètre
| Type | Obligatoire ou non | Description | Valeur par défaut | int ou str |
|---|---|---|---|---|
| axis | Optional | Spécifie s'il faut supprimer des lignes ou des colonnes. | Indique la suppression des lignes contenant des valeurs manquantes ;0ou'index'Indique la suppression des colonnes contenant des valeurs manquantes.1ou'columns'Optional |
0 |
| how | str | Spécifie la condition de suppression. | Indique la suppression s'il existe au moins une valeur manquante ;'any'Indique la suppression uniquement si toutes les valeurs sont manquantes.'all'Optional |
'any' |
| thresh | int | Définit le nombre minimum de valeurs non manquantes. Si le nombre de valeurs non manquantes dans une ligne (ou colonne) est inférieur à | , alors la ligne (ou colonne) est supprimée.threshOptional |
Aucune |
| sous-ensemble | de type tableau | Spécifie dans quelles colonnes (ou lignes) rechercher les valeurs manquantes. Si | , puisaxis=0spécifie les noms de colonnes ; sisubset, puisaxis=1spécifie les indices de lignes.subsetOptional |
Aucune |
| inplace | bool | Si | , modifie directement le DataFrame d'origine et ne renvoie pas de nouvel objet ; siTrue, renvoie un nouveau DataFrame, en laissant les données d'origine inchangées.FalseDescription de la valeur de retour |
False |
Description de la valeur de retour
- ), ou
inplace=False(siNoneLe DataFrame renvoyé ne contient ni lignes ni colonnes avec des valeurs manquantes.inplace=True)。 - Exemples
Exemples
l'utilisation de.dropna()Exemple 1 : Supprimer les lignes avec des valeurs manquantes
Exemple 1 : Supprimer les lignes avec des valeurs manquantes
Exemple
Exemple
import numpy as np
'Name'
data = {
'Zhang San': ['Li Si', 'Wang Wu', 'Zhao Liu', 'Qian Qi', 'age'],
# L'âge de Wang Wu est manquant: [25, 30, np.nan, 35, 28], 'Salary'
# Le salaire de Zhao Liu est manquant: [5000, 6000, 5500, np.nan, 7000], 'Department'
'Technologie': ['Marketing', 'Technologie', 'Marketing', 'Technologie', “Données brutes :”]
}
df = pd.DataFrame(data)
print(# Supprimer les lignes avec des valeurs manquantes (comportement par défaut))
print(df)
print("=" * 50)
"Données après suppression des valeurs manquantes :"
df_cleaned = df.dropna()
print(Sortie attendue :)
print(df_cleaned)
Analyse du code :
原始数据:
姓名 年龄 薪资 部门
0 张三 25.0 5000.0 技术
1 李四 30.0 6000.0 市场
2 王五 NaN 5500.0 技术
3 赵六 35.0 NaN 市场
4 钱七 28.0 7000.0 技术
==================================================
删除缺失值后的数据:
姓名 年龄 薪资 部门
0 张三 25.0 5000.0 技术
1 李四 30.0 6000.0 市场
4 钱七 28.0 7000.0 技术
Nous avons créé un DataFrame contenant des valeurs manquantes, où l'âge de Wang Wu est
- , et le salaire de Zhao Liu est
NaNUtilisationNaN。 - avec les paramètres par défaut, toutes les lignes contenant des valeurs manquantes ont été supprimées.
df.dropna()Le résultat a conservé les données de Zhang San, Li Si et Qian Qi, et a supprimé Wang Wu et Zhao Liu. - Exemple 2 : Supprimer les colonnes avec des valeurs manquantes
Exemple 2 : Supprimer les colonnes avec des valeurs manquantes
Exemple
Exemple
import numpy as np
'Name'
data = {
'Zhang San': ['Li Si', 'Wang Wu', 'Zhao Liu', 'age'],
'Salary': [25, 30, 35, 40],
# Plusieurs colonnes ont des valeurs manquantes: [5000, np.nan, 5500, np.nan], 'Department'
'Marketing': [np.nan, 'Technology', 'Marketing', 'city'],
'Pékin': ['Shanghai', 'Canton', 'Shenzhen', # Aucune valeur manquante] “Données brutes :”
}
df = pd.DataFrame(data)
print(# Supprimer les colonnes avec des valeurs manquantes)
print(df)
print("=" * 50)
Données après suppression des colonnes avec des valeurs manquantes :
df_cleaned = df.dropna(axis=1)
print(Sortie attendue :)
print(df_cleaned)
Analyse du code :
原始数据:
姓名 年龄 薪资 部门 城市
0 张三 25 5000.0 NaN 北京
1 李四 30 NaN 市场 上海
2 王五 35 5500.0 技术 广州
3 赵六 40 NaN 市场 深圳
==================================================
删除缺失值列后的数据:
姓名 年龄 城市
0 张三 25 北京
1 李四 30 上海
2 王五 35 广州
3 赵六 40 深圳
Paramètre
- indique une opération par colonne.
axis=1Les colonnes Salary et Department contiennent des valeurs manquantes, elles sont donc supprimées. - Les colonnes Name, Age et City n'ont pas de valeurs manquantes, elles sont donc conservées.
- Exemple 3 : Utiliser le paramètre thresh pour contrôler les conditions de suppression
Exemple 3 : Utiliser le paramètre thresh pour contrôler les conditions de suppression
threshExemple
Exemple
import numpy as np
# Contient 2 valeurs manquantes
data = {
'A': [1, 2, np.nan, 4, 5],
'B': [np.nan, 2, 3, 4, np.nan], # Aucune valeur manquante
'C': [1, 2, 3, 4, 5], # A 3 valeurs manquantes
'D': [np.nan, np.nan, np.nan, 4, 5] « Données brutes : »
}
df = pd.DataFrame(data)
print(# Conserver uniquement les lignes avec au moins 3 valeurs non manquantes)
print(df)
print("=" * 50)
"Conserver les lignes avec au moins 3 valeurs non manquantes :"
df_cleaned = df.dropna(thresh=3)
print(Sortie attendue :)
print(df_cleaned)
Analyse du code :
原始数据:
A B C D
0 1.0 NaN 1.0 NaN
1 2.0 2.0 2.0 NaN
2 NaN 3.0 3.0 NaN
3 4.0 4.0 4.0 4.0
4 5.0 NaN 5.0 5.0
==================================================
保留至少3个非缺失值的行:
A B C D
1 2.0 2.0 2.0 NaN
3 4.0 4.0 4.0 4.0
La ligne 0 n'a qu'une seule valeur non manquante (1.0), elle est donc supprimée.
- La ligne 1 a 3 valeurs non manquantes (2.0, 2.0, 2.0), elle est donc conservée.
- La ligne 2 n'a que 2 valeurs non manquantes (3.0, 3.0), elle est donc supprimée.
- La ligne 3 a 4 valeurs non manquantes, elle est donc conservée.
- La ligne 4 n'a que 3 valeurs non manquantes (5.0, 5.0, 5.0), elle est donc conservée.
- Exemple 4 : Utiliser subset pour spécifier les colonnes à vérifier
Exemple 4 : Utiliser subset pour spécifier les colonnes à vérifier
paramètre.subsetExemple
Exemple
import numpy as np
'Name'
data = {
'Zhang San': ['Li Si', 'Wang Wu', 'Zhao Liu', 'age'],
# L'âge de Li Si est manquant: [25, np.nan, 35, 40], 'Salary'
# Le salaire de Wang Wu est manquant: [5000, 6000, np.nan, 8000], 'Department'
'Technologie': ['Marketing', 'Technologie', 'Marketing', « Données brutes : »]
}
df = pd.DataFrame(data)
print(# Vérifier les valeurs manquantes uniquement dans les colonnes "Name" et "Department")
print(df)
print("=" * 50)
'Name'
df_cleaned = df.dropna(subset=['Department', Données après vérification des valeurs manquantes uniquement dans les colonnes Name et Department:])
print(# Vérifier les valeurs manquantes uniquement dans la colonne "薪资")
print(df_cleaned)
print("=" * 50)
'Salary'
df_cleaned2 = df.dropna(subset=["Données après vérification des valeurs manquantes uniquement dans la colonne salaire:"])
print(Sortie attendue :)
print(df_cleaned2)
Analyse du code :
原始数据:
姓名 年龄 薪资 部门
0 张三 25.0 5000.0 技术
1 李四 NaN 6000.0 市场
2 王五 35.0 NaN 技术
3 赵六 40.0 8000.0 市场
==================================================
只在姓名和部门列检查缺失值后的数据:
姓名 年龄 薪资 部门
0 张三 25.0 5000.0 技术
1 李四 NaN 6000.0 市场
2 王五 35.0 NaN 技术
3 赵六 40.0 8000.0 市场
==================================================
只在薪资列检查缺失值后的数据:
姓名 年龄 薪资 部门
0 张三 25.0 5000.0 技术
1 李四 30.0 6000.0 市场
3 赵六 40.0 8000.0 市场
Les colonnes Name et Department ne contiennent aucune valeur manquante, donc toutes les lignes sont conservées après la vérification.
- Dans la colonne Salary, le salaire de Wang Wu est
- , donc la ligne 2 est supprimée.
NaNExemple 5 : Utiliser how='all' pour supprimer uniquement les lignes dont toutes les valeurs sont manquantes
Exemple 5 : Utiliser how='all' pour supprimer uniquement les lignes avec toutes les valeurs manquantes
how='all'Exemple
Exemple
import numpy as np
« Données brutes : »
data = {
'A': [1, np.nan, np.nan, 4],
'B': [2, np.nan, np.nan, 5],
'C': [3, np.nan, np.nan, 6]
}
df = pd.DataFrame(data)
print(# Supprimer les lignes où toutes les valeurs sont manquantes)
print(df)
print("=" * 50)
Après avoir supprimé toutes les lignes contenant des valeurs manquantes :
df_cleaned = df.dropna(how='all')
print(Sortie attendue :)
print(df_cleaned)
Analyse du code :
原始数据:
A B C
0 1.0 2.0 3.0
1 NaN NaN NaN
2 NaN NaN NaN
3 4.0 5.0 6.0
==================================================
删除全部为缺失值的行后:
A B C
0 1.0 2.0 3.0
3 4.0 5.0 6.0
Toutes les valeurs des lignes 1 et 2 sont
- , en utilisant
NaNsupprimez-les.how='all'Supprimez-les. - Les lignes 0 et 3 contiennent des données réelles et ont été conservées.
Notes
dropna()Par défaut, le DataFrame d'origine n'est pas modifié. Pour le modifier sur place, utilisezinplace=Trueparamètre.- Utiliser
threshLors de l'utilisation du paramètre, la valeur que vous définissez doit être basée sur vos exigences en matière de qualité des données. - Avant de supprimer des données, il est recommandé d'utiliser d'abord
df.isnull().sum()pour afficher le nombre de valeurs manquantes dans chaque colonne, afin de pouvoir prendre des décisions plus éclairées. - Pour les jeux de données importants, à utiliser avec prudence
dropna(), car cela peut entraîner une perte importante de données. Vous pouvez envisager d'utiliserfillna()pour remplir les valeurs manquantes.
Autres extensions