Skip to content

Vous pouvez utiliser l’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ pour vรฉrifier si un ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ ou ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ est vide.

Contenu

L’exemple de code de cet article utilise la version 2.0.3 de pandas .

import pandas as pd print(pd.__version__) # 2.0.3 

Comment utiliser l’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ dans ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ et ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ

๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ.๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ

L’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ renvoie T๐ซโ€Œ๐ฎโ€Œ๐žโ€Œ pour un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ vide et F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ dans le cas contraire.

df_empty = pd.DataFrame() print(df_empty) # Empty DataFrame # Columns: [] # Index: [] print(df_empty.empty) # True 

df_full = pd.DataFrame({'A': [0, 1, 2]}) print(df_full) # A # 0 0 # 1 1 # 2 2 print(df_full.empty) # False 

Notez que N๐šโ€ŒN est considรฉrรฉ comme une valeur valide. Par consรฉquent, mรชme si tous les รฉlรฉments sont N๐šโ€ŒN , ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ renvoie F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ .

df_nan = pd.DataFrame({'A': [float('NaN'), float('NaN'), float('NaN')]}) print(df_nan) # A # 0 NaN # 1 NaN # 2 NaN print(df_nan.empty) # False 

Pour dรฉterminer si tous les รฉlรฉments sont N๐šโ€ŒN , appliquez d’abord la mรฉthode ๐โ€Œ๐ซโ€Œ๐จโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ() pour supprimer N๐šโ€ŒN , puis utiliser ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ .

print(df_nan.dropna()) # Empty DataFrame # Columns: [A] # Index: [] print(df_nan.dropna().empty) # True 

Par dรฉfaut, ๐โ€Œ๐ซโ€Œ๐จโ€Œ๐ฉโ€Œ๐งโ€Œ๐šโ€Œ() supprime les lignes contenant au moins un N๐šโ€ŒN . Pour supprimer les lignes dont tous les รฉlรฉments sont N๐šโ€ŒN , utilisez ๐กโ€Œ๐จโ€Œ๐ฐโ€Œ=’๐šโ€Œ๐ฅโ€Œ๐ฅโ€Œ’ .

df_mix = pd.DataFrame({'A': [float('NaN'), float('NaN'), float('NaN')], 'B': [0, 1, 2]}) print(df_mix) # A B # 0 NaN 0 # 1 NaN 1 # 2 NaN 2 print(df_mix.dropna()) # Empty DataFrame # Columns: [A, B] # Index: [] print(df_mix.dropna(how='all')) # A B # 0 NaN 0 # 1 NaN 1 # 2 NaN 2 

๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ.๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ

L’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ de S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ fonctionne de la mรชme maniรจre que D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ .

s_empty = pd.Series() print(s_empty) # Series([], dtype: object) print(s_empty.empty) # True 

s_full = pd.Series([0, 1, 2]) print(s_full) # 0 0 # 1 1 # 2 2 # dtype: int64 print(s_full.empty) # False 

s_nan = pd.Series([float('NaN'), float('NaN'), float('NaN')]) print(s_nan) # 0 NaN # 1 NaN # 2 NaN # dtype: float64 print(s_nan.empty) # False print(s_nan.dropna()) # Series([], dtype: float64) print(s_nan.dropna().empty) # True 

Remarque : un ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ ou ๐ฉโ€Œ๐šโ€Œ๐งโ€Œ๐โ€Œ๐šโ€Œ๐ฌโ€Œ.S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ vide n’est pas considรฉrรฉ comme F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ

En Python, les listes vides, les tuples, les dictionnaires et les structures similaires sont รฉvaluรฉs comme F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ .

l_empty = [] print(bool(l_empty)) # False 

Par exemple, dans les instructions ๐ขโ€Œ๐Ÿโ€Œ , vous pouvez utiliser directement l’objet pour vรฉrifier si une liste ou une structure de donnรฉes similaires est vide.

if not l_empty: print('Empty!') # Empty! 

Cependant, un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ ou S๐žโ€Œ๐ซโ€Œ๐ขโ€Œ๐žโ€Œ๐ฌโ€Œ vide n’est pas considรฉrรฉ comme F๐šโ€Œ๐ฅโ€Œ๐ฌโ€Œ๐žโ€Œ . Par consรฉquent, vous devez utiliser prรฉciser l’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ pour vรฉrifier la vacuitรฉ.

df_empty = pd.DataFrame() print(df_empty) # Empty DataFrame # Columns: [] # Index: [] # print(bool(df_empty)) # ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). print(df_empty.empty) # True 

# if df_empty: # print('Empty!') # ValueError: The truth value of a DataFrame is ambiguous. Use a.empty, a.bool(), a.item(), a.any() or a.all(). if df_empty.empty: print('Empty!') # Empty! 

Pour plus de dรฉtails sur l’erreur T๐กโ€Œ๐žโ€Œ ๐ญโ€Œ๐ซโ€Œ๐ฎโ€Œ๐ญโ€Œ๐กโ€Œ ๐ฏโ€Œ๐šโ€Œ๐ฅโ€Œ๐ฎโ€Œ๐žโ€Œ ๐จโ€Œ๐Ÿโ€Œ ๐šโ€Œ D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ ๐ขโ€Œ๐ฌโ€Œ Pour plus d’informations , reportez-vous ร  l’article suivant.

Exemple : vรฉrifier si des lignes ou des รฉlรฉments rรฉpondent ร  une condition

Vous pouvez extraire des lignes d’un D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ qui satisfont une certaine condition en utilisant l’indexation boolรฉenne avec des opรฉrateurs de comparaison ou la mรฉthode ๐ชโ€Œ๐ฎโ€Œ๐žโ€Œ๐ซโ€Œ๐ฒโ€Œ() .

Si aucune ligne ne rรฉpond ร  la condition, une valeur D๐šโ€Œ๐ญโ€Œ๐šโ€ŒF๐ซโ€Œ๐šโ€Œ๐ฆโ€Œ๐žโ€Œ vide est renvoyรฉe. Vous pouvez ensuite vรฉrifier ce rรฉsultat avec l’attribut ๐žโ€Œ๐ฆโ€Œ๐ฉโ€Œ๐ญโ€Œ๐ฒโ€Œ pour confirmer si les lignes rรฉpondent ร  la condition.

df = pd.DataFrame({'A': [0, 1, 2], 'B': ['aaa', 'bbb', 'ccc']}) print(df) # A B # 0 0 aaa # 1 1 bbb # 2 2 ccc print(df[df['A'] < 0]) # Empty DataFrame # Columns: [A, B] # Index: [] print(df[df['A'] < 0].empty) # True 

print(df.query('A < 0')) # Empty DataFrame # Columns: [A, B] # Index: [] print(df.query('A < 0').empty) # True