Comment vérifier si un DataFrame pandas est vide?

Comment vérifier si un pandas DataFrame est vide? Dans mon cas, je veux imprimer un message dans le terminal si le DataFrame est vide.

170
demandé sur Nilani Algiriyage 2013-11-07 09:45:35

3 réponses

Vous pouvez utiliser l'attribut df.empty pour vérifier si il est vide ou non:

if df.empty:
    print('DataFrame is empty!')

Source: Documentation Pandas

263
répondu aIKid 2017-12-15 17:37:02

J'utilise la fonction len. C'est beaucoup plus rapide que empty(). len (df.index) est encore plus rapide.

import pandas as pd
import numpy as np

df = pd.DataFrame(np.random.randn(10000, 4), columns=list('ABCD'))

def empty(df):
    return df.empty

def lenz(df):
    return len(df) == 0

def lenzi(df):
    return len(df.index) == 0

'''
%timeit empty(df)
%timeit lenz(df)
%timeit lenzi(df)

10000 loops, best of 3: 13.9 µs per loop
100000 loops, best of 3: 2.34 µs per loop
1000000 loops, best of 3: 695 ns per loop

len on index seems to be faster
'''
31
répondu Zero 2016-03-13 14:37:57

Je préfère aller sur la longue route. Ce sont les vérifications que je suis pour éviter d'utiliser une clause try-except -

  1. Vérifiez si la variable n'est pas None
  2. Ensuite, vérifiez si c'est un dataframe et
  3. assurez-vous que ce n'est pas vide

Ici, DATA est la variable suspecte -

DATA is not None and isinstance(DATA, pd.DataFrame) and not DATA.empty
10
répondu fixxxer 2015-08-20 13:50:23