달나라 노트

Python Pandas : empty (Series 또는 DataFrame이 비어있는지 확인하기.) 본문

Python/Python Pandas

Python Pandas : empty (Series 또는 DataFrame이 비어있는지 확인하기.)

CosmosProject 2022. 8. 22. 19:21
728x90
반응형

 

 

 

pandas의 empty는 Series 또는 DataFrame이 비어있으면 True를 return합니다. 반대로 비어있지 않으면 False를 return합니다.

 

 

 

import pandas as pd

dict_test = {

}
df_test = pd.DataFrame(dict_test)

print(df_test)
print(df_test.empty)



-- Result
Empty DataFrame
Columns: []
Index: []

True

 

위 예시는 비어있는 DataFrame인 df_test를 만들고 df_test의 empty를 적용한 결과입니다.

DataFrame에 column도 row도 아무것도 없으니 비어있죠. 따라서 True가 return됩니다.

 

 

 

 

 

import pandas as pd

dict_test = {
    'col1': [],
    'col2': [],
}
df_test = pd.DataFrame(dict_test)

print(df_test)
print(df_test.empty)


-- Result
Empty DataFrame
Columns: [col1, col2]
Index: []

True

 

이번에는 DataFrame에 column 2개(col1, col2)를 추가해보았습니다.

단, column만 추가하고 row는 추가하지 않았습니다.

 

DataFrame이 비어있는 조건은 row가 없는 상황입니다.

위 상황은 column만 2개 존재하고 그 column에 들어간 데이터들이 하나도 없는 상태(= row가 하나도 없는 상태)이기 때문에 비어있는 DataFrame이라고 할 수 있습니다.

 

따라서 마찬가지로 True가 return됩니다.

 

 

 

 

 

 

import pandas as pd

dict_test = {
    'col1': [1],
    'col2': [2],
}
df_test = pd.DataFrame(dict_test)

print(df_test)
print(df_test.empty)


-- Result
   col1  col2
0     1     2

False

 

이번에는 DataFrame에 존재하는 column들에 데이터를 넣어주었습니다.

하나의 행이 생겼으며 당연히 DataFrame은 비어있지 않게 됩니다.

즉, empty의 결과로서 False가 return됩니다.

 

 

 

 

 

 

import pandas as pd
import numpy as np

dict_test = {
    'col1': [np.nan],
    'col2': [np.nan],
}
df_test = pd.DataFrame(dict_test)

print(df_test)
print(df_test.empty)


-- Result
   col1  col2
0   NaN   NaN

False

 

이번 예시는 numpy를 이용하여 DataFrame에 NaN값을 넣었습니다.

 

NaN값은 null값과 비슷한 의미를 가지며, 값이 없는 비어있는 상태라고 보면 됩니다.

 

근데 empty의 결과로는 False가 나왔습니다.

 

NaN값이 있어도 NaN값을 담은 하나의 행이 생성되었기 때문에 DataFrame은 비어있지 않다라고 판단되었기 때문이죠.

 

DataFrame이 비어있는 기준은 행에 어떤 데이터가 있는지는 상관없습니다.

단지 DataFrame에 행이 하나도 없으면 비어있다고 판단하고, 행이 하나라도 있으면 DataFrame이 비어있지 않다라고 판단하는 것이죠.

 

 

 

 

 

 

 

 

 

Series에서도 위와 동일합니다.

 

 

import pandas as pd

sr_test = pd.Series([])

print(sr_test)
print(sr_test.empty)


-- Result
Series([], dtype: float64)

True

 

데이터가 하나도 없는 비어있는 Series를 생성했더니 empty의 결과로 True가 return되었습니다.

 

 

 

 

 

import pandas as pd

sr_test = pd.Series([1])

print(sr_test)
print(sr_test.empty)


-- Result
0    1
dtype: int64

False

 

뭔가 데이터를 넣어주면 Series가 더 이상 비어있지 않게 되고 empty의 결과로 당연히 False가 return됩니다.

 

 

 

 

 

import pandas as pd
import numpy as np

sr_test = pd.Series([np.nan])

print(sr_test)
print(sr_test.empty)


-- Result
0   NaN
dtype: float64

False

 

Series에서도 마찬가지로 NaN값이 포함되어있으면 비록 값 자체는 없지만 Series가 비어있지는 않다고 판단합니다.

그래서 empty의 결과로 False가 return됩니다.

 

 

 

 

 

 

728x90
반응형
Comments