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
'파이썬완전정복-Pandas DataFrame > 12. 데이터 확인' 카테고리의 다른 글
Pandas DataFrame 12-06 일치 여부 (equals) (0) | 2022.01.26 |
---|---|
Pandas DataFrame 12-05 결측값이 아닌 요소의 수 (count) (0) | 2022.01.25 |
Pandas DataFrame 12-03 일치하는 요소 확인 (isin) (0) | 2022.01.25 |
Pandas DataFrame 12-02. 비어있는지 확인 (empty) (0) | 2022.01.25 |
Pandas DataFrame 12-01. 최대/최소값이 포함된 행/열 (idxmax / idxmin) (0) | 2022.01.25 |