반응형
팬더 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 절을 사용하지 않기 위해 수행하는 검사입니다.
- 변수가 없음이 아닌지 확인
- 그런 다음 데이터 프레임인지 확인하고
- 비어 있지 않은지 확인하십시오
여기 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
반응형
'IT story' 카테고리의 다른 글
테이블이 존재하지 않는 경우에만 SQLite로 테이블 작성 (0) | 2020.04.08 |
---|---|
git 브랜치를 master와 동기화하는 방법 (0) | 2020.04.08 |
프로그래밍에서 "원자"는 무엇을 의미합니까? (0) | 2020.04.08 |
CSS를 사용하여 글꼴을 굵게 만드는 방법은 무엇입니까? (0) | 2020.04.08 |
SSH 구성 : 기본 사용자 이름 재정의 (0) | 2020.04.08 |