Vous pouvez utiliser l’attribut ๐โ๐ฆโ๐ฉโ๐ญโ๐ฒโ pour vรฉrifier si un ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.D๐โ๐ญโ๐โF๐ซโ๐โ๐ฆโ๐โ ou ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.S๐โ๐ซโ๐ขโ๐โ๐ฌโ est vide.
- pandas.DataFrame.empty โ documentation de pandas 2.0.3
- pandas.Series.empty โ documentation de pandas 2.0.3
- Comment utiliser l’attribut ๐โ๐ฆโ๐ฉโ๐ญโ๐ฒโ dans ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.D๐โ๐ญโ๐โF๐ซโ๐โ๐ฆโ๐โ et ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.S๐โ๐ซโ๐ขโ๐โ๐ฌโ
- Remarque : un ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.D๐โ๐ญโ๐โF๐ซโ๐โ๐ฆโ๐โ ou ๐ฉโ๐โ๐งโ๐โ๐โ๐ฌโ.S๐โ๐ซโ๐ขโ๐โ๐ฌโ vide n’est pas considรฉrรฉ comme F๐โ๐ฅโ๐ฌโ๐โ
- Exemple : vรฉrifier si des lignes ou des รฉlรฉments rรฉpondent ร une condition
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 ๐ชโ๐ฎโ๐โ๐ซโ๐ฒโ() .
- pandas : sรฉlectionner des lignes avec plusieurs conditions
- pandas : interroger le DataFrame et extraire des lignes avec query()
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
