데이터 분석 전 전처리를 위해서 판다스를 많이 사용합니다. 오늘은 파이썬 판다스 기능들에 대해서 핵심 요약을 해보도록 하겠습니다.
파이썬 판다스란
판다스는 데이터 분석을 위한 패키지입니다. 판다스에는 막강한 기능들이 있습니다. 엑셀로 할 수 있는 모든 것, 웹 정보 수집 크롤링, 데이터베이스 핸들링, 데이터 시각화가 가능합니다. 판다스를 사용하려면 import pandas as pd 형태로 가져와서 사용하게 됩니다. Series는 1차원으로 이루어진 데이터 배열을 의미하고 DataFrame은 2차원으로 이루어진 데이터 배열을 의미합니다.
파일 읽어오기
CSV 파일, excel 파일 읽어오기
판다스에서 데이터 전처리를 하고 데이터 분석을 하려면 분석하려는 파일을 먼저 불러와야 하겠죠? 일반적으로 csv파일과 엑셀 파일을 가져와서 전처리 및 분석을 진행합니다. 먼저 csv파일 읽어오기입니다. csv 파일이란 Comma Separated Vale의 약어로써, 쉼표로 구분된 파일을 의미합니다. 엑셀을 로딩할 수도 있지만, 쉼표로 구분된 파일이 훨씬 가볍습니다. csv파일을 불러오려면 아래와 같은 코드 형태를 사용합니다. pd.read_csv를 사용하여 파일을 불러온것을 df에 담아줍니다.
df = pd.read_csv('파일경로')
excel 파일을 읽어오려면 아래와 같은 코드형태를 사용합니다.
df = pd.read_excel('파일경로')
통계 값, 요약정보, 정렬
column(열) 출력하기, 이름 재정의 하기
데이터프레임에 어떤 컬럼이 있는지 컬럼 정보만 보고 싶을 때는 아래와 같은 코드를 작성합니다.
df.columns
데이터프레임의 컬럼명을 변경하고 싶을 때는 아래와 같은 코드를 작성합니다. 여기서 새로 바꿀 열의 리스트 개수는 원래 열의 개수와 동일해야 합니다.
df.columns = ['새열이름1', '새열이름2', '새열이름3']
index(행) 출력하기
index(행)을 range 범위 형태로 출력합니다.
df.index
info()
info()는 메소드로서 기본적인 row(행)의 정보와 데이터 타입을 알려줍니다. info() 메소드는 주로 빠진 값 (null 값)과 데이터 타입을 볼 때 활용합니다.
df.info()
describe() - 통계정보 알아보기
산술 연산을 할 수 있는 컬럼만 출력을 합니다. 개수, 평균값, 표준편차, 최솟값, 25%, 50%, 75%, 최댓값을 보여줍니다.
df.describe()
shape - 형태 알아보기
shape는 tuple 형태로 반환되며, 첫 번째는 row, 두 번째는 column의 숫자를 의미합니다.
df.shape
상위 행 출력
괄호만 입력하면 상위 5개 행을 출력합니다. 괄호 안에 숫자를 넣으면 최상위부터 해당되는 숫자의 행까지 출력합니다.
df.head()
하위 행 출력
괄호만 입력하면 하위 5개 행을 출력합니다. 괄호안에 숫자를 넣으면 최하위부터 해당되는 숫자의 행까지 출력합니다.
df.tail()
오름차순 index 정렬
sort_index()메소드를 사용하면 맨 왼쪽에 있는 인덱스를 기준으로 정렬을 해줍니다.
df.sort_index()
내림차순 index 정렬
내림차순으로 정렬을 하고자 할 때는 괄호 안에 ascending=False를 입력해 줍니다.
df.sort_index(ascending=False)
오름차순 column 별로 정렬
특정 컬럼 기준으로 정렬할 때는 sort_values()메소드를 사용하며 괄호 안에 by='컬럼명'을 기입합니다. 기본은 오름차순입니다.
df.sort_values(by='컬럼명')
내림차순 column 별로 정렬
특정 컬럼 기준으로 정렬할 때는 sort_values()메소드를 사용하며 괄호안에 by='컬럼명'과 ascending=False를 기입합니다.
df.sort_values(by='컬럼명', ascending=False)
복수 정렬
여러 개의 컬럼 기준으로 정렬할 때는 컬럼명을 리스트 형태로 기입해 줍니다.
df.sort_values(by=['컬럼명1', '컬럼명2'])
색인
열 선택
대괄호 안에 컬럼명을 콤마와 함께 입력하면 원하는 열만 선택할 수 있습니다.
df['컬럼명']
단순 인덱스 범위 선택
0~2 인덱스 행을 출력할 때 df[:3]의 코드를 입력해주면 됩니다. 이것은 df.head(3)과 동일한 결과를 출력합니다.
df[:3]
loc 범위 선택
쉼표를 기준으로 왼쪽은 행을 지정하고 오른쪽은 열을 지정합니다. :은 다 가져옵니다. 부분적으로 선택해서 가져오고 싶을 때는 리스트를 사용합니다. loc에서 숫자로 범위를 지정할 때 뒤에 지정된 숫자 포함해서 가져오는 점 유의해야 합니다. 예를 들어 3:8이면 3번째행에서 8번째행까지 가져옵니다. range(3:8)은 3에서 7을 지정하는 것과 다르죠?
df.loc[:, '이름']
df.loc[:, ['이름', '생년월일']]
df.loc[3:8, ['이름', '생년월일']]
df.loc[2:5, '이름':'생년월일']
iloc 범위 선택
컬럼명을 쓰지 않고 몇 번째 행인지 몇번째 열인지 숫자로 범위를 지정하여 선택할 수 있습니다. iloc에서 1:5의 행(열)을 지정하면 첫 번째 행(열)에서 네 번째 행(열)을 지정합니다. loc와 헷갈리지 않도록 해야 합니다.
df.iloc[:, [0, 2]]
df.iloc[1:5, [0, 2]]
df.iloc[1:5, 1:4]
Boolean, Indexing, isin 범위 선택
대괄호 안에 조건을 입력하면 조건을 만족하는 행, 그리고 모든 열에 대해서 출력이 됩니다.
df[df['키'] > 180]
특정 컬럼과 같이 색인하고 싶을 때는 맨 뒤에 출력할 컬럼을 붙이거나
df[df['키'] > 180]['이름']
df[df['키'] > 180, ['이름', '키']]
loc을 활용할 수 있습니다. loc방법을 추천드립니다.
df.loc[df['키'] > 180, '이름']
df.loc[df['키'] > 180, '이름':'성별']
isin을 활용한 색인
isin을 활용한 색인은 내가 조건을 걸고자 하는 값이 내가 정의한 list에 있을 때만 색인하려는 경우에 사용합니다.
my_condition = ['사과', '바나나']
df['과일'].isin(my_condition) #'과일'열의 각 행별로 True인지 False인지 판단
df.loc[df['과일'].isin(my_condition)] #조건에 맞는 행, 모든열 출력
df.loc[df['과일'].isin(my_condition), '과일'] #조건에 맞는 행, 과일열 출력
결측값(NULL) 색인
df.isna()/df.isnull()을 사용하면 데이터프레임 전체적으로 어떤 컬럼에 빠진 데이터가 있는지 True or False로 확인할 수 있습니다.
df.isna()
df.isnull()
특정 컬럼을 대상으로 NULL 여부는 아래와 같이 열을 지정후 isna()/isnull() 메소드를 사용합니다.
df['그룹'].isna()
df['그룹'].isnull()
NAN값만 색출도 가능합니다.
df['그룹'][df['그룹'].isna()]
df['그룹'][df['그룹'].isnull()]
NAN값만 색출하고 특정 열만 출력도 가능합니다.
df['그룹'][df['그룹'].isnull(), ['키', '혈액형']]
NAN이 아닌 값에 대하여 Boolean 인덱싱도 가능합니다.
df['그룹'].notnull()
NAN이 아닌 값만 색출 가능합니다.
df['그룹'][df['그룹'].notnull()]
NAN이 아닌 값만 색출하고 특정 열만 출력 가능합니다.
df['그룹'][df['그룹'].notnull(), ['키', '혈액형']]
이상으로 파이썬 판다스 파일 읽어오기, 통계값 확인, 색인 기능들에 대한 정리 마치겠습니다.
'데이터 분석 및 업무 자동화' 카테고리의 다른 글
파이썬 판다스 활용한 데이터 전처리 핵심 요약 (0) | 2022.02.16 |
---|---|
Python Pandas 핵심 요약 - pivot_table, groupby, 시각화 (0) | 2022.02.14 |
비전공 직장인의 파이썬 독학 - 조건문과 반복문 (0) | 2022.02.07 |
평범한 직장인의 파이썬 독학 기록 - 리스트, 딕셔너리, 함수 (0) | 2022.02.05 |
직장인 파이썬 독학 기록 - 왕기초편 (0) | 2022.02.04 |
댓글