오랑우탄의 반란
데이터 전처리 & 시각화 (4) Pandas 개념 익히기 2 본문
오늘 오랑이는 pandas를 활용한 데이터 전처리에 대해 배울 예정입니다.
지난 포스트에 이어 데이터 확인 및 선택과 불리언 인덱싱을 알아보겠습니다.
4 데이터 확인 및 선택
데이터 확인
.head(n) / .tail(n)
dataframe 을 위에서부터, 밑에서부터 출력해주는 함수로, 데이터셋을 불러올 때 제대로 들어있는지 간단하게 확인하는 용도입니다.
.info()
각 칼럼에 대한 null 여부과 그 개수, 타입을 알려주는 함수입니다.
.describe()
숫자 데이터에 대한 간단한 통계를 반환하는 함수입니다.
.dtype
특정 칼럼의 타입을 조회할 수 있습니다.
.dtypes
모든 칼럼에 대한 타입을 조회할 수 있습니다.
.astype()
특정 칼럼의 타입을 바꿀 때 사용합니다.
아래 데이터로 더 알아보겠습니다.
df = pd.DataFrame({
'A':[1,2,3,4],
'B':[5,6,7,None]
})
.isna()
데이터셋 전체에 적용하면 표 형식으로 null 값이 들어간 칸에 대해 True , 아니면 False를 반환해줍니다.
앞에 특정 칼럼명을 붙여서 인덱스와 참/거짓 값만 출력할 수 있고, 해당 코드를 다시 dataset[] 안에 넣으면 True 인 값의 원본 데이터를 불러와줍니다.
데이터 선택
데이터 선택에는 인덱스를 사용하는 .iloc, 인덱스/열 이름을 사용하는 .loc 두 가지 방법이 있습니다.
.iloc[인덱스, 칼럼번호]
인덱스 번호와 몇번째 칼럼인지 칼럼 번호를 각각 변수로 받아 데이터를 선택하는 방식입니다.
이때 변수를 범위로 설정할 때 파이썬의 슬라이싱 기법과 동일하게 [시작:끝-1] 범위로 적용됩니다.
따로 인덱스명을 지정해주지 않아도 되고 파이썬과 동일한 문법이어서 편리하지만, 칼럼이 많을 경우 몇번째인지 파악하기 어려울 수 있습니다. 이러한 경우 .loc 을 사용할 수 있습니다.
.loc[인덱스명, 칼럼명]
iloc 과는 다르게 우선 데이터셋에서 인덱스명을 모두 지정해줘야 사용이 가능합니다.
iloc 와 비교해보면 사용 방식은 동일하지만 숫자 대신 문자를 사용한 것을 볼 수 있습니다.
여기서 한 가지 주의해야 할 점은, iloc 에서는 파이썬 슬라이싱과 범위가 동이랗게 적용된 반면, loc 을 사용할 경우 문자에 해당하는 칼럼까지로 범위가 설정된다는 점입니다.
아래 예시로 보면, 표에서 보면 범위가 똑같이 나올 것처럼 보이지만 (1:3 = 'b':'d', 0:2 = 'A':'C') 실제 iloc 은 1:2, 0:1 의 범위까지만 호출이 되는 반면 loc 은 기재된 행/열까지 모두 호출됩니다.
이 외에도 바로 데이터세트에서 대괄호로 범위를 묶어서 데이터를 슬라이싱할 수 있습니다.
5 불리언 인덱싱
아래 데이터로 불리언 인덱싱을 알아봅시다.
조건에 대한 기본적인 문법은 파이썬과 동일합니다.
다만 여러 조건이 있을 때 and, or 대신 &, | 를 사용한다는 점 주의하면 되겠습니다.
불리언 인덱싱의 경우 True 인 값에 해당하는 데이터를 반환합니다.
df[(df['sex']=='Male') & (df['smoker']=='Yes')] # and
df[(df['sex']=='Male') | (df['smoker']=='Yes')] # or
앞서 배운 loc 을 활용해 특정 조건을 만족하는 행에 대해서 특정 범위의 열만 출력되도록 할 수도 있습니다.
엑셀에서처럼 개별 열을 출력하는 경우 꼭 대괄호로 묶어줘야 한다는 점 잊지 맙시다. (대괄호 잊을 때마다 오류파티)
.isin
변수에 들어가는 값에 해당하는 조건이 되도록 하는 함수로, sql 의 in() 과 동일한 쓰임새입니다.
그리고 파이썬과 동일하게 조건을 변수에 저장해서 함수처럼 사용할 수 있습니다.
조건이 여러 개인 경우 &, | 를 사용해서 데이터에 적용할 때 연결해주거나, 변수 내에서 여러 조건을 설정할 수 있습니다.
마지막으로 데이터 추가 관련해서, 칼럼 간 연산을 하고 그 결과를 세로운 칼럼으로 자유롭게 저장할 수도 있습니다.
지금까지 pandas 를 활용한 데이터 확인 및 선택, 그리고 불리언 인덱싱에 관해 알아봤습니다.
다음 포스트에서 이어서 보겠습니다.
오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~
'PYTHON > 데이터분석' 카테고리의 다른 글
데이터 전처리 & 시각화 (7) Matplotlib 개념 익히기 (2) | 2024.07.18 |
---|---|
데이터 전처리 & 시각화 (6) 데이터 시각화란? (0) | 2024.07.18 |
데이터 전처리 & 시각화 (5) Pandas 개념 익히기 3 (0) | 2024.07.18 |
데이터 전처리 & 시각화 (3) Pandas 개념 익히기 1 (0) | 2024.07.17 |
데이터 전처리 & 시각화 (1) 데이터 전처리란? (0) | 2024.07.17 |