반응형

안녕하세요, 매주한책입니다. 

이번에는 파이썬 머신러닝 판다스 데이터 분석에서 데이터 입출력 부분을 보려고 합니다. 

이전 포스트에서는 머신러닝을 배우기 전에 알면 좋은 기본적인 개념을 정리해봤다면

이번 포스트에서는 데이터프레임을 잘 다루기 위한 메소드를 알아보려고 합니다. 

 

데이터프레임에서 특정 열을 삭제하는 방법과 간단하게 그래프를 그리는 메소드를 소개합니다. 

 

이전 포스트가 궁금하면 아래 링크를 클릭해주세요

https://week-book.tistory.com/6

 

판다스 쓰기 전에 알아야 할 개념 정리: 파이썬 머신러닝 판다스 데이터 분석 (1)

안녕하세요, 매주한책입니다. 이번에는 파이썬 머신러닝 판다스 데이터 분석을 요약해보려고 합니다. 다른 머신러닝 책을 보면서 판다스를 자유롭게 사용할 수 있으면 좋을 것 같아서 판다스

week-book.tistory.com

파이썬 머신러닝 판다스 데이터 분석 요약 

 

외부 파일 읽어오기 

판다스는 다양한 형태의 외부 파일을 읽어와서 데이터 프레임으로 변환하는 함수를 제공합니다. 

File Format Reader Writer
CSV read_csv to_csv
JSON read_json to_json
HTML read_html to_html
MS Excel read_excel to_excel 

머신러닝 모델을 만들기 위해서 CSV 파일을 받아서 작업한 경우가 많은데요, 판다스에서 제공하는 함수가 있어 손쉽게 csv 파일을 읽을 수 있습니다. 그 외에도 데이터를 처리하고 excel로 변환도 가능하니 파이썬에서 다양한 데이터 처리가 가능합니다. 

 

CSV 파일이란?

CSV 파일은 데이터 값을 쉼표(,)로 구분하고 있다는 의미로 CSV(Comma-Separated values)라고 부르는 텍스트 파일입니다. 쉼표로 열을 구분하고 줄 바꿈으로 행을 구분합니다. 판다스에서 read_csv() 함수에 파일 경로를 입력하면 csv 파일을 읽어와서 데이터프레임으로 변환합니다. 

 

 header 옵션: 열 이름이 되는 행을 지정합니다. 

예를 들어서 0번째 행이 c0, c1, c2, c3인 csv 파일이 있고 header=0으로 설정하면, 

c0 c1 c2 c3

열 이름에 c0, c1, c2, c3가 들어갑니다. 

header = None을 지정하면, 숫자 0, 1, 2, 3으로 열 이름이 지정됩니다. 

 

index_col 옵션: 행 주소가 되는 열을 지정합니다. 

index_col=False로 설정한다면, 정수 값 0, 1, 2 ... 가 행 주소로 설정됩니다. 

index_col='c0'로 설정한다면, csv파일의 c0 열이 인덱스로 설정됩니다. 

0
1
2
 

 

CSV 파일로 저장 

판다스 데이터 프레임은 2차원 배열로 구조화된 데이터이기 때문에 2차원 구조를 갖는 CSV 파일로 변환할 수 있습니다.

데이터 프레임을 CSV 파일로 저장하려면 to_csv() 메소드를 사용하면 됩니다. 

df.to_csv("파일 이름(경로)")

Excel 파일 

Excel 파일의 행과 열은 데이터프레임의 행, 열로 일대일 대응된다. 

read_excel() 함수의 사용법은 read_csv()와 거의 비슷하다. 

header=None 옵션을 사용하면 정수형 인덱스 (0, 1, 2, .)를 열 이름으로 자동 할당한다. 

 

Excel 파일로 저장 

데이터프레임은 Excel 파일과 아주 유사한 구조를 가집니다. 데이터프레임의 행과 열은 Excel 파일의 행과 열로 일대일로 대응됩니다. 데이터프레임을 Excel 파일로 저장할 때는 to_excel() 메소드를 사용합니다. to_excel() 메소드를 사용하려면 openpyxl 라이브러리를 사전에 설치해야 합니다. 

df.to_excel(*./df_sample.xlsx*)

 

데이터 살펴보기

데이터 내용 미리보기 

데이터프레임을 미리 보는 방법은 head() 메소드를 사용하면 됩니다. 

print(df.head()) #처음 5개 행을 보여줍니다. 

print(df.tail()) #마지막 5개 행을 보여줍니다. 

 

데이터프레임 데이터 요약 정보 확인하는 방법

데이터프레임 클래스의 shape 속성은 행과 열의 개수를 튜플 형태로 보여줍니다. 

print(df.shape)로 행, 열의 개수를 알 수 있습니다. 

 

데이터프레임의 기본 정보를 확인하는 방법

print(df.info())로 데이터프레임 df의 내용을 확인할 수 있습니다. 

column 이름과 non-null값이 몇 개 있는지, 자료형과 메모리 사용량이 출력됩니다. 

 

데이터프레임의 기술 통계 정보 요약 

데이터프레임에 describe() 메소드를 적용하면, 숫자 데이터를 갖는 열에 대한 통계 정보를 요약하여 알려줍니다. 

출력되는 값으로는 평균, 표준편차, 최댓값, 최솟값, 중간값을 출력해줍니다. 

 

 

데이터프레임에서 모든 열의 평균값 구하는 방법 

DataFrame 객체.mean()을 쓰면 모든 열의 평균값을 각각 계산할 수 있습니다. 

 

데이터프레임에서 중간값을 구하는 방법 

DataFrame객체.median()을 사용하면 산술 데이터를 갖는 모든 열의 중간값을 계산하여 시리즈로 반환합니다. 

 

데이터프레임에서 표준편차값을 구하는 방법 

DataFrame객체.std()를 사용하면 산술 데이터를 갖는 열의 표준편차를 계산하여 시리즈로 반환해줍니다. 

 

데이터프레임에서 상관계수 값을 구하는 방법 

데이터프레임에 corr() 메소드를 적용하면 두 열 간의 상관계수를 계산합니다. 

df.corr()로 사용할 수 있고, 특정 열만 비교하고 싶을 경우엔 df[['c0', 'c2']].corr() 로 사용하면 c0와 c2 사이 관계를 보여줍니다. 

출력값이 1에 가까워질 수록 양의 상관관계를 가지고, 0에 가까워질 수록 관계가 없다고 판단하면 됩니다. 

-1에 가깝다면 음의 상관관계라고 생각하면 됩니다. 

 

데이터프레임으로 히스토그램 그리는 방법 

plot() 메소드를 이용하면 됩니다. 메소드 옵션으로 kind='hist' 넣으면 히스토그램을 볼 수 있습니다. 

Dataframe객체.plot(kind='hist')

기본 df.plot()일 경우 선그래프로 보입니다. 

kind옵션은 다음과 같습니다. 

kind 옵션 설명
'line'  선 그래프
'bar' 수직 막대 그래프
'barh' 수평 막대 그래프
'his' 히스토그램
'box' 박스 플롯
'kde' 커널 밀도 그래프
'area' 면적 그래프
'pie' 파이 그래프
'scatter' 산점도 그래프
'hexbin' 고밀도 산점도 그래프 

 

반응형