Fonction df.dropna() de Pandas

Fonctions courantes 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

  • ), ouinplace=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 pandas as pd
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

  1. , et le salaire de Zhao Liu estNaNUtilisationNaN。
  2. 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.
  3. Exemple 2 : Supprimer les colonnes avec des valeurs manquantes

Exemple 2 : Supprimer les colonnes avec des valeurs manquantes

Exemple

Exemple

import pandas as pd
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 pandas as pd
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 pandas as pd
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 pandas as pd
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 utilisantNaNsupprimez-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.
  • UtiliserthreshLors 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'aborddf.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 prudencedropna(), car cela peut entraîner une perte importante de données. Vous pouvez envisager d'utiliserfillna()pour remplir les valeurs manquantes.

Fonctions courantes de Pandas

Autres extensions