IT story

팬더 DataFrame이 비어 있는지 확인하는 방법은 무엇입니까?

hot-time 2020. 4. 8. 08:03
반응형

팬더 DataFrame이 비어 있는지 확인하는 방법은 무엇입니까?


팬더 DataFrame가 비어 있는지 확인하는 방법 ? 내 경우에는 DataFrame비어있는 경우 터미널에 메시지를 인쇄하고 싶습니다 .


이 속성 df.empty사용하여 비어 있는지 여부를 확인할 수 있습니다 .

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

출처 : Pandas Documentation


나는 그 len기능을 사용한다 . 보다 훨씬 빠릅니다 empty. len(df.index)훨씬 빠릅니다.

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
'''

나는 긴 길을가는 것을 선호합니다. 다음은 try-except 절을 사용하지 않기 위해 수행하는 검사입니다.

  1. 변수가 없음이 아닌지 확인
  2. 그런 다음 데이터 프레임인지 확인하고
  3. 비어 있지 않은지 확인하십시오

여기 DATA용의자 변수가 있습니다-

DATA is not None and isinstance(DATA, pd.DataFrame) and not DATA.empty

이 스레드에서 승인 된 empty의 정의는 행이 0 인 데이터 프레임 인 것으로 보입니다. 그러나 행이 0이고 열이 0 인 빈 데이터 프레임과 행이 0이며 하나 이상의 열이있는 빈 데이터 프레임에는 차이가 있습니다. 각각의 경우 색인의 길이는 0이며 비어있는 = 여기에 표시된대로 True입니다.

예제 1 : 행이 0이고 열이 0 인 빈 데이터 프레임

In [1]: import pandas as pd
        df1 = pd.DataFrame()
        df1
Out[1]: Empty DataFrame
        Columns: []
        Index: []

In [2]: len(df1.index)
Out[2]: 0

In [3]: df1.empty
Out[3]: True

예 2 : 행이 0이고 열이 1 개 이상인 빈 데이터 프레임

In [4]: df2 = pd.DataFrame({'AA' : [], 'BB' : []})
        df2
Out[4]: Empty DataFrame
        Columns: [AA, BB]
        Index: []

In [5]: len(df2.index)
Out[5]: 0

In [6]: df2.empty
Out[6]: True

헤더와 데이터가 비어 있거나 데이터가 비어있는 데이터 프레임을 구별하는 한 가지 방법은 열 인덱스의 길이를 테스트하는 것입니다. 첫 번째로로드 된 데이터 프레임은 0 개의 열을 반환하고 두 번째는 열 수를 반환합니다.

In [7]: len(df1.columns)
Out[7]: 0

In [8]: len(df2.columns)
Out[8]: 2

참고 URL : https://stackoverflow.com/questions/19828822/how-to-check-whether-a-pandas-dataframe-is-empty

반응형