본문 바로가기
IT/Python

[데이터 처리] Python-pandas 기초 공부 내용 정리(연산, 데이터프레임 구조,통계 추출, 데이터 입출력)

by dwoi 2023. 3. 31.

본 글은 데이터 처리를 위해 자주 사용되는 파이썬의 판다스 라이브러리에 대해

공부한 기초적인 내용을 정리하는 글임을 밝힘.

 

목차

     


    pandas

     


    1. 판다스 연산

    산술 연산

    • 판다스 객체는 산술 연산을 지원
      • 사칙연산은 물론 로그, 지수등의 연산도 가능
    • 시리즈 vs 숫자, 시리즈 vs 시리즈 연산
      • 시리즈가 제공하는 연산 메소드를 사용할 수 있음. 
    • 데이터프레임 vs 숫자, 데이터프레임 vs 데이터프레임 연산

    1.1. 시리즈 연산

    ⓐ. 시리즈 vs 숫자

    • 시리즈 객체에 숫자로 연산을 하면 모든 원소에 동일하게 반영

    ⓑ. 시리즈 vs 시리즈

    • 시리즈와 시리즈의 연산은 같은 인덱스를 가진 원소끼리 이루어짐

    1.1.1. 시리즈 연산 메소드

    add() : 더하기

    sub() : 빼기

    mul() : 곱하기

    div() : 나눗셈

     


    인덱스에 해당하는 값이 없을때, fill_value를 사용하여 산술연산을 수행

    두 시리즈 가운데 어느 한쪽의 인덱스가 없는 경우 결과값이 NaN


    1.2. 데이터프레임 연산

    ⓐ. 데이터프레임 vs 숫자

    • 데이터프레임 객체에 숫자로 연산을 하면 데이터프레임 내 원소에 동일하게 반영

    ⓑ. 데이터프레임 vs 데이터프레임

    • 데이터프레임끼리의 연산은 같은 행과 열의 위치를 가진 원소끼리 이루어짐

    두 데이터 프레임의 행과 열이 서로 같지 않는 경우에도 연산은 가능

    • 같지 않는 경우 NaN

     


     

    2. 데이터 프레임(Dataframe) 구조

    데이터 프레임 구조

    • 데이터를 처음 불러오면 데이터에 대해 전반적인 내용을 파악해야함
    • 전체 데이터 내용 가운데 일부를 미리 확인
      • head() tail()
    • 데이터프레임 내 개별 열(column)의 데이터에 대한 정보를 파악
      • 전체 데이터 개수
      • 고유값의 개수

     

    2.1. 데이터프레임 정보

    ⓐ. 데이터정보 살펴보기

    • 데이터 미리보기 head(), tail() 메소드 사용

    ⓑ. 데이터프레임 정보

    • shape(), info() 메소드로 데이터에 대한 기본 정보 확인
      • shape() : 행과 열에 대한 정보
      • info() : 데이터프레임 정보

    ⓒ . 데이터 타입

    • int, float, object, datetime 등의 다양한 타입 존재
      • 판다스의 object 타입은 파이썬의 문자열과 같음

    ⓓ. 데이터프레임 통계 정보 (수치형 데이터에 대한 통계를 뽑아줌.)

    •  describe() 메소드를 사용하며 문자열에 해당하는 object 타입 데이터는 제외.
      • include= 'all' 옵션을 사용하면 모든 열의 정보를 보여줌.

     

    2.2. 열(column) 데이터 정보

    ⓐ. 각 열의 고유값 개수 확인하기

    • nunique() 메소드는 각 열의 고유값 전체 개수를 세는데 사용
      • value_counts()와 달리 고유값의 전 개수(int)를 반환

    ⓑ. 데이터 개수 확인하기

    • count() 메소드로 데이터프레임의 각 열의 데이터 개수를 확인

    ⓒ. 각 열의 고유값 확인하기

    • value_counts() 메소드는 각 열의 고유값의 개수를 세는데 사용 

     

    3. 데이터 통계 추출

    데이터프레임 통계 함수

    • 데이터에 대한 각종 통계 데이터를 추출할 수 있는 메소드가 데이터 프레임에 존재
      • 전체 합
      • 평균값, 표준편차
      • 중간값
      • 최대값
      • 최소값
      • 상관계수
    • int, float 타입의 데이터에 주로 적용되지만 일부 메소드는 문자열에도 사용 가능

     

    3.1. 기초 통계값 추출

    ⓐ. 전체 합 

    • sum() 메소드

     

    ⓑ. 평균값

    • mean() 메소드

     

    ⓒ. 표준 편차

    • std() 메소드

     

    ⓓ. 중간값

    • median() 메소드

     

    ⓔ. 최대값/최소값

    • 최대값 : max() 메소드
    • 최소값:  min() 메소드

     

    3.2. 상관계수

    corr()

    • 두 열을 한 쌍으로 하여 두 변수간의 상관계수(r)를 계산함
      • 양의 상관관계 : r > 0
      • 음의 상관관계 : r < 0 
      • 두 변수가 독립인 경우 : r = 0

     


     

    4. 데이터 입출력

    데이터 읽어오기

    • 판다스는 다양한 형태의 외부 파일을 데이터 프레임으로 읽어올 수 있음
    • 반대로 데이터 프레임을 다양한 유형의 파일로 저장할 수도 있음
    • 지원 파일 
      • CSV
      • JSON
      • EXCEL
      • HTML
      • 기타(SQL, HDF5, …)

    4.1. 데이터 입력

    ⓐ. csv 파일 : read_csv()

    import pandas as pd
    
    file_path = './read_sample1.csv'
    
    df1 = pd.read_csv(file_path)
    print(df1)
    print('\n')
    
    df2 = pd.read_csv(file_path, header=None)
    print(df2)
    print('\n')
    
    df3 = pd.read_csv(file_path, index_col='col1') 
    print(df3)

    ⓑ. excel 파일  : read_excel(file_path, engine='openpyxl')

    • pip install openpyxl → 라이브러리 설치 후 엑셀 파일 로드
    import pandas as pd
    
    file_path = './read_sample1.xlsx'
    
    df1 = pd.read_excel(file_path, engine='openpyxl')
    print(df1)
    print('\n')
    
    df2 = pd.read_excel(file_path, header=None, engine='openpyxl')
    print(df2)

    ⓒ. JSON 파일 read_json()

    • key:value 구조를 갖는 특수한 파일 형식

     

    4.2. 데이터 출력

    ⓐ. csv 파일

    • df.to_csv()

    ⓑ. excel 파일 (xlsx)

    • df.to_excel()

    ⓒ. JSON 파일

    • df.to_json()

    마무리

    개념은 크게 어렵지 않으나 여러번 사용해서 사용법을 몸에 익히는 게 필요하다고 판단됨!

    댓글