오랑우탄의 반란

데이터 전처리 & 시각화 (4) Pandas 개념 익히기 2 본문

PYTHON/데이터분석

데이터 전처리 & 시각화 (4) Pandas 개념 익히기 2

5&2 2024. 7. 17. 21:46
반응형

 

오늘 오랑이는 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 를 활용한 데이터 확인 및 선택, 그리고 불리언 인덱싱에 관해 알아봤습니다. 

 

다음 포스트에서 이어서 보겠습니다. 

 

 

 

오랑우탄이 영어를 하고 오랑이가 코드마스터가 되는 그날까지~

 

 

반응형