본문 바로가기
Python/Pandas

불린리덕션(empty, any, all, bool)-pandas(26)

by 콩돌 2020. 4. 19.
반응형

파이썬 버전 3.7 기준

pandas 버전 0.25.1 기준



 불린리덕션(boolean reduction)


본 포스팅에서는 pandas에서 제공하는 empty, any, all, bool메서드를 활불린리덕션 기능을 소개하도록 한다.



 불린리덕션


사용자는 불린리덕션이라고 하는 기능을 적용할 수 있다.

  ○ empty, any(), all(), bool() 등

이 메서드들은 불린 결과를 요약하는 기능을 갖추고 있다.

각 기능에 대한 설명은 다음과 같다.


다음과 같이 pandas와 numpy를 import시킨 후 예제를 수행하였다.


모듈의 임폴트)

# pandas와 numpy의 import

In[2]: import pandas as pd

In[3]: import numpy as np


 DataFrame.empty

DataFrame, Series, Index 객체가 비어있는지 확인하는 메서드이다.

만약 비어있으면 True를 비어있지 않다면 False을 반환한다.


empty 메서드 예제)

# pandas와 numpy의 import

In[4]: ex_em = pd.DataFrame([])

In[5]: ex_em2 = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])


# empty 메서드 사용 예

In[6]: ex_em.empty

Out[6]: True

In[7]: ex_em2.empty

Out[7]: False



 DataFrame.any(axis=0)

지정된 축의 방향(행 혹은 열)에 대해 탐색을 수행한다.

  ○ 해당 열 혹은 행에 대해 하나라도 True값이 존재한다면 True를 출력한다. 

  ○ 탐색을 수행한 열 혹은 행에 대해 모든 값이 False이면 False을 출력한다.   


any 메서드 예제)

# pandas와 numpy의 import

In[8]: ex_em = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])

In[9]: ex_em 

Out[9]: 

   0  1  2

0  1  2  3

1  4  5  6

2  7  8  9


# any 메서드 사용 예

In[10]: (ex_em>5).any()

Out[10]: 

0    True

1    True

2    True

dtype: bool


In[11]: (ex_em>5).any(axis=1)

Out[11]: 

0    False

1     True

2     True

dtype: bool



 DataFrame.all(axis=0)

지정된 축의 방향(행 혹은 열)에 대해 탐색을 수행한다.

  ○ 하나라도 해당 열 혹은 행에 대해 모든 값이 True어야 True를 출력한다. 

  ○ 탐색을 수행한 열에 대해 하나라도 False이 존재하는 경우 False을 출력한다.   


all 메서드 예제)

# pandas와 numpy의 import

In[12]: ex_em = pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]])

In[13]: ex_em 

Out[13]: 

   0  1  2

0  1  2  3

1  4  5  6

2  7  8  9


# empty 메서드 사용 예

In[14]: (ex_em>6).all()

Out[14]: 

0    False

1    False

2    False

dtype: bool


In[15]: (ex_em>6).all(axis=1)

Out[15]: 

0    False

1    False

2     True

dtype: bool



 DataFrame.bool()

DataFrame이나 Series에 단 하나의 요소가 존재하고, 해당 요소가 bool형 자료형인 경우, 해당 요소의 맥락을 파악하는데 사용되어진다. 


bool 메서드 예제)

# pandas와 numpy의 import

In[16]: ex_em_bool1=pd.DataFrame([True])

In[17]: ex_em_bool2=pd.DataFrame([False])


# empty 메서드 사용 예

In[18]: ex_em_bool1.bool()

Out[18]: True

In[19]: ex_em_bool2.bool()

Out[19]: False



 메서드 세부사항


empty와 bool 메서드는 옵션이 따로 존재하지 않는다.

any와 all은 결과를 다르게 도출하지만 옵션 세부사항에 대해서는 거의 동일하다. 

따라서 any 메서드의 옵션에 대해서만 다루도록한다.


 DataFrame.any(self, axis=0, bool_only=None, skipna=True, level=None, **kwargs)


axis: {0 or ‘index’, 1 or ‘columns’, None}

탐색을 수행할 시에 어느 쪽 방향으로 수행할지 결정한다.

  ○ 0 혹은 'index'를 입력받을 경우 동일 index쪽 방향으로 탐색을 수행하며,

  ○ 1 혹은 'columns'를 입력받을 경우는 동일 columns쪽 방향으로 탐색을 수행한다.

  ○ None을 입력받을 경우는 모든 축에 대해 탐색을 수행하며 스칼라 값을 반환한다. 

  ○ 기본값은 0이며 index 방향으로 탐색을 수행한다.


bool_only: bool, None

오직 boolean값을 가지는 열만 포함시키는지 여부를 결정한다.

  ○ True일 경우 boolean값을 가지는 열만 포함시킨다.

  ○ None일 경우 모든 데이터를 사용하는 것을 시도한다.


Series에서는 적용되지 않는다.


skipna: bool

NA/null 값을 제외할지 여부를 결정한다.

  ○ True일 경우 NA/null 값을 제외시킨다.

  ○ False일 경우 NA/null 값을 제외시키지 않고 탐색을 수행한다. 이경우 NA/null을 True로 취급한다.

  ○ 기본값은 True이다.


level: int, leve name

멀티인덱스에서 불린리덕션을 수행할 레벨을 선택한다.

기본값은 None이다.




 

 

 

 

참고자료

  https://pandas.pydata.org/docs/getting_started/basics.html

  

 

 

 

 



반응형

댓글