Pandas déposer des lignes avec NaN
-
Pandas déposer des lignes avec NaN en utilisant la méthode
DataFrame.notna()
-
Pandas n’obtient que des lignes avec des valeurs
NaN
pour toutes les colonnes en utilisant la méthodeDataFrame.dropna()
-
Pandas ne laisse tomber que les lignes avec des valeurs
NaN
pour une colonne particulière en utilisant la méthodeDataFrame.dropna()
-
Pandas dépose les lignes avec des valeurs
NaN
pour n’importe quelle colonne en utilisant la méthodeDataFrame.dropna()
Ce tutoriel explique comment nous pouvons déposer toutes les lignes avec des valeurs NaN
en utilisant les méthodes DataFrame.notna()
et DataFrame.dropna()
.
Nous utiliserons le DataFrame dans l’exemple de code ci-dessous.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print(data)
Production :
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
Pandas déposer des lignes avec NaN en utilisant la méthode DataFrame.notna()
La méthode DataFrame.notna()
renvoie un objet booléen avec le même nombre de lignes et de colonnes que le DataFrame appelant. Si un élément n’est pas NaN
, il est mis en correspondance avec la valeur True
de l’objet booléen, et si un élément est un NaN
, il est mis en correspondance avec la valeur False
.
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Name": ["Alice", "Steven", "Neesham", "Chris", "Alice"],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data[data["Income($)"].notna()]
print("DataFrame after removing rows with NaN value in Income Field:")
print(data)
Production :
Initial DataFrame:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
2 Neesham 18.0 NaN 2500.0
3 Chris 21.0 3500.0 25000.0
4 Alice NaN NaN NaN
DataFrame after removing rows with NaN value in Income Field:
Name Age Income($) Expense($)
0 Alice 19.0 4000.0 3000.0
1 Steven NaN 5000.0 2000.0
3 Chris 21.0 3500.0 25000.0
Ici, nous appliquons la méthode notna()
à la colonne Income($)
, qui renvoie un objet série avec des valeurs True
ou False
selon les valeurs de la colonne. Lorsque nous passons l’objet booléen comme index à la DataFrame originale, nous n’obtenons que des lignes sans valeurs NaN
pour la colonne Income($)
.
Pandas n’obtient que des lignes avec des valeurs NaN
pour toutes les colonnes en utilisant la méthode DataFrame.dropna()
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(how="all")
print("DataFrame after removing rows with NaN value in All Columns:")
print(data)
Production :
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in All Columns:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
Il supprime uniquement les lignes avec des valeurs NaN
pour tous les champs du DataFrame. Nous définissons how='all'
dans la méthode dropna()
pour que la méthode ne supprime que les lignes dont toutes les valeurs de colonne sont NaN
.
Pandas ne laisse tomber que les lignes avec des valeurs NaN
pour une colonne particulière en utilisant la méthode DataFrame.dropna()
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna(subset=["Id"])
print("DataFrame after removing rows with NaN value in Id Column:")
print(data)
Production :
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in Id Column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
Il supprime toutes les colonnes du DataFrame, qui ont une valeur NaN
uniquement dans la colonne Id
.
Pandas dépose les lignes avec des valeurs NaN
pour n’importe quelle colonne en utilisant la méthode DataFrame.dropna()
import pandas as pd
roll_no = [501, 502, 503, 504, 505]
data = pd.DataFrame(
{
"Id": [621, 645, 210, 345, None],
"Age": [19, None, 18, 21, None],
"Income($)": [4000, 5000, None, 3500, None],
"Expense($)": [3000, 2000, 2500, 25000, None],
}
)
print("Initial DataFrame:")
print(data)
print("")
data = data.dropna()
print("DataFrame after removing rows with NaN value in any column:")
print(data)
Production :
Initial DataFrame:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
1 645.0 NaN 5000.0 2000.0
2 210.0 18.0 NaN 2500.0
3 345.0 21.0 3500.0 25000.0
4 NaN NaN NaN NaN
DataFrame after removing rows with NaN value in any column:
Id Age Income($) Expense($)
0 621.0 19.0 4000.0 3000.0
3 345.0 21.0 3500.0 25000.0
Par défaut, la méthode dropna()
supprimera toutes les lignes qui ont au moins une valeur NaN
.
Suraj Joshi is a backend software engineer at Matrice.ai.
LinkedInArticle connexe - Pandas DataFrame Row
- Comment obtenir le nombre de lignes d'un Pandas DataFrame
- Comment mélanger au hasard les lignes DataFrame dans Pandas
- Filtrer les lignes des cadres de données en fonction des valeurs des colonnes dans Pandas
- Comment parcourir les lignes d'un DataFrame dans Pandas
- Comment obtenir l'index de toutes les lignes dont la colonne particulière satisfait la condition donnée dans Pandas
- Les Pandas déposent des lignes en double