본문 바로가기
IT/Python

[데이터 처리] Python pandas-기초 공부 내용 정리 (자료구조)

by dwoi 2023. 3. 31.

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

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

 

목차

     


    pandas

     


    1. 판다스의 자료구조 

    • 데이터를 수집하고 정리하는 데 최적화된 도구
    • 오픈소스로 무료라는 장점을 가짐
    • 가장 쉬운 언어인 파이썬을 기반으로 함
    • 데이터를 다루는 업무의 80%이상을 판다스로 처리

    1.1. 판다스 자료구조

    • 데이터의 속성은 매우 다양함
      • 서로 다른 형식의 데이터를 동일한 형식으로 통합해야 함
      • 판다스는 시리즈와 데이터 프레임을 제공함.

    1.1.1. 시리즈

    데이터가 순차적으로 나열된 1차원 배열

    인덱스(key)와 데이터 값(value)가 일대일 대응으로 이루어진 데이터

    → 파이썬 딕셔너리와 유사

    인덱스 구조

    • 인덱스를 잘 활용하면 값의 탐색,정렬, 선택, 결합을 쉽게 할 수 있음
    • 정수형 인덱스가 기본으로 사용되며 직접 이름을 지정할 수도 있음.

     


     

    2. 데이터 프레임(Dataframe)

    2.1. 데이터프레임이란?

    • 2차원 배열로 행과 열로 이루어짐
    • 여러 개의 시리즈들이 모여서 데이터 프레임을 이룸.

    행과 열의 이름도 설정 가능.

    • index : 행의 이름
    • colums : 열의 이름

     

    2.2. 행/열 활용

    구분 loc 메소드 iloc 메소드
    탐색 대상 인덱스 이름으로 탐색 정수형 위치 인덱스로 탐색
    범위 지정 ['a':'c']  → ['a, 'b', 'c']  [3:7] → 3,4,5,6

    ⓐ. 행 선택

    • loc 메소드는 인덱스의 이름으로 데이터를 선택
    • iloc 메소드는 인덱스의 위치로 데이터를 선택
      • iloc을 활용하여 범위를 지정하고 슬라이싱 간격을 조정할 수 있음.
      • 슬라이싱 간격에 -1을 입력하면 역순으로 정렬

    ⓑ. 열 선택

    • 열을 하나 선택할 때는 열의 이름으로 선택
    • 2개 이상 선택할 때는 []를  사용한 열 이름의 리스트로 선택

    ⓒ. 원소 선택

    • loc 메소드로 원소를 선택할 떄는 행과 열의 이름으로 선택
    • iloc 메소드로 원소를 선택할 때는 행과 열의 인덱스를 계산하여 선택

     

    3. 데이터 프레임 조작

    3.1. 행/열 조작

    • 주어진 데이터프레임에 새로운 데이터를 추가하거나 삭제할 수 있음.
      • 행 추가/삭제
      • 열 추가/삭제
    • 데이터 프레임 내 특정 값이 잘못된 경우 이를 변경할 수 있음.
    • 데이터프레임의 행과 열의 위치를 바꿔서 조작할 수 있음.
    • 데이터 프레임 내 행 데이터를 특정 기준에 따라 정렬할 수 있음.

     

    ⓐ. 행 추가

    • loc 메소드에 행의 이름과 데이터를 전달하여 새로운 행을 추가
    • 열의 개수에 맞게 데이터를 추가해야 함.
    • 기존의 행의 이름을 선택하면 데이터를 변경할 수 있음.

     

    ⓑ. 열 추가

    • 새로운 열의 이름과 데이터 값을 사용하여 열을 추가
    • 하나의 값만 전달하면 모두 같은 값으로 채워짐
    • 기존의 열의 이름을 사용하면 해당 열의 데이터를 변경할 수 있음.

     

    ⓒ. 행 삭제

    • drop 메소드를 사용하여 해당 이름의 행을 삭제함(axis = 0)
      • inplace =True

     

    ⓓ. 열 삭제

    • axis =1, drop 메소드 사용

     

    ⓔ. 원소값 변경

    • 행과 열의 이름을 사용하여 loc 메소드로 변경
    • 행과 열의 인덱스 위치를 사용하여 iloc 메소드로 변경

     

    ⓕ. 행/열 위치 바꾸기 (transpose)

    • 2차원 numpy의 transpose 동일하게 작동
    • transpose(), T모두 사용 가능

     

    ⓖ. 데이터 프레임 정렬

    • index의 순서대로 정렬 → sort_index()
    • 특정 value의 순서대로 정렬 → sort_value()

     


     

    마무리

     행과 열에 대해 서로 헷갈리지 말 것!

     

     

    댓글