반응형

12-04 요소의 True/False 확인 (all / any)

DataFrame.all(axis=0, bool_only=None, skipna=True, level=None, kwargs)

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

 

개요


all/any는 축의 값들의 True/False여부를 판단하는 메서드입니다.
all축의 값이 전부 True이면 True반환, 하나라도 False가 있으면 False를 반환합니다.
any축의 값이 하나라도 True가 있으면 True반환, 전부 False이면 False를 반환합니다.

 

사용법


기본 사용법
df.all(axis=0, bool_only=None, skipna=True, level=None, kwargs)
df.any(axis=0, bool_only=None, skipna=True, level=None, kwargs)
axis : {0 : index / 1:columns} 기준이 될 축입니다.
bool_only : True면 축의 모든 값이 bool인 경우에만 계산을 수행합니다. None면 모든 경우를 고려합니다.
예를들어 0과 공백()은 False로 고려되고 결측값(pd.NA)은 True로 고려되는 등 입니다.

skipna : 결측치의 무시 여부입니다. True면 결측치가 포함된 열은 무시됩니다.
level : Multi Index에서 레벨의 선택입니다.
kwargs : 추가 키워드는 효과가 없지만 NumPy와의 호환성을 위해 허용될 수 있습니다.

 

예시


먼저 4x6짜리 객체를 만들어보겠습니다.

[N,T,F]=[pd.NA,True,False]
idx = ['row1','row2','row3','row4']
data = {'col1':[T,T,T,T], 'col2':[F,F,F,F],'col3':[F,T,T,T],'col4':[T,N,T,T],'col5':[T,T,'',T],'col6':[T,T,T,0]}
df = pd.DataFrame(data=data, index=idx)
print(df)
>>
      col1   col2   col3  col4  col5  col6
row1  True  False  False  True  True  True
row2  True  False   True  <NA>  True  True
row3  True  False   True  True        True
row4  True  False   True  True  True     0

기본적인 사용법(all과 any 비교)
all은 축의 값이 전부 True면 True를 반환하고 any는 하나라도 True면 True를 반환합니다.
0과 공백()은 False로, 결측값(pd.NA)은 True로 분류됩니다.

print(df.all())
>>
col1     True #모두 True
col2    False #모두 False
col3    False #1개가 Ture
col4     True #<NA>포함(나머지True)
col5    False #공백 포함(나머지True)
col6    False #0포함(나머지True)
dtype: bool
print(df.any())
>>
col1     True #모두 True
col2    False #모두 False
col3     True #1개가 Ture
col4     True #<NA>포함(나머지True)
col5     True #공백 포함(나머지True)
col6     True #0포함(나머지True)
dtype: bool

any의 경우 하나라도True면 True를 반환하기때문에, axis=1로 하여 행 기준으로 실행하면, 모두 True를 반환하는것을 볼 수 있습니다.

print(df.any(axis=1))
>>
row1    True
row2    True
row3    True
row4    True
dtype: bool


bool_only인수의 사용
bool_only=True일 경우 모든 요소가 bool형식인 경우만 계산됩니다.

print(df.all(bool_only=True))
>>
col1     True
col2    False
col3    False
dtype: bool


skipna인수의 사용
skipna=True인 경우 결측치는 True로서 계산되며, skipna=False인 경우 결측치가 포함된 축이 계산에서 제외됩니다.

print(df.all(skipna=True))
>>
col1     True
col2    False
col3    False
col4     True
col5    False
col6    False
dtype: bool
print(df.all(skipna=False))
>>
col1     True
col2    False
col3    False
col5    False
col6    False
dtype: bool
반응형

+ 최근 글