포스트

파이썬 판다스

판다스 개념, 특징

파이썬 판다스

🔴 이 글을 쓰기 위해 참고한 영상 / 사이트

[블로그]넘파이 다차원 배열

판다스?

파이썬은 기본적으로 데이터를 가지고 연산하고 가공하는데에 우수한 성능을 보여주지만,
테이블 형태의 데이터에 대한 통계적 분석이나 데이터 항목 사이의 연산 등에는 적합하지 않다.

이럴때 쓰는게 판다스 라는 라이브러리인데, 특징으로는
강력한 데이터 분석능력과 빠르고 효율적인 속도이다. ( 넘파이 기반으로 만들어짐 )
또한, 맷플롯립의 pyplot과도 완벽하게 통합되어 있어 이를 이용한 시각화 기능까지 제공하여 데이터 과학자들을 위한 핵심도구로 평가받는다.

판다스로 할 수 있는 일?

CSV, Xlsx, SQL 데이터베이스에서 데이터를 읽어 스프레드시트와 유사한 데이터프레임(이하 DF)이라는 파이썬 객체를 만들 수 있다.
DF를를 통해 기존의 for문으로 작업하는 것보다 훨씬 효율적으로 데이터 항목에 접근할 수 있다는 점이 있다.

  1. 데이터 불러오기 및 저장하기
    1) List, Dict, 넘파이배열(ndarray)를 DF로 변환 가능
    2) pandas로 csv파일이나 tsv, xlsx 파일을 열 수 있다.
    3) URL을 통해 웹 사이트의 csv, json 같은 원격 파일 / DB를 열 수 있다.

  2. 데이터 보기 및 검사
    1) DF의 mean() 메소드로 모든 열의 평균 계산 가능
    2) DF의 corr()로 DF의 열 사이의 상관 관계를 계산 가능
    3) DF의 count()로 각 DF 열에서 null이 아닌 값의 개수를 계산 가능

  3. 필터, 정렬 및 그룹화
    1) DF의 sort_values()로 정렬가능
    2) 조건을 사용해 열을 필터링 할 수 있다.
    3) DF의 groupby()를 이요해 기준에 따라 몇 개의 그룹으로 데이터를 분할 가능

  4. 데이터 정제
    1) 데이터의 누락 값 확인 가능
    2) 특정한 값을 다른 값으로 대체할 수 있다.

CSV ?

개념 : 테이블 형식의 데이터를 저장하고 이동하는데 사용되는 구조화된 텍스트 파일 형식

쉼표를 이용해 데이터 요소를 구분하며, 데이터 요소를 구분할 목적으로 사용되는 문자나 부호를 구분자라고 한다.

CSV파일 형식은 마이크로소프트 엑셀과 같은 스프레드시트 소프트웨어에 적합한 형식,
현재 데이터 과학에서 사용되는 데이터 가운데 상당한 비율의 데이터들이 CSV형식으로 공유되고 있음

CSV 구성

CSV 파일은 필드를 나타내는 열(column)과 레코드를 나타내는 행(row)으로 구성됨
만약 데이터의 중간에 구분자(쉼표)가 포함되어야 한다면 따옴표를 사용하여 데이터를 감싸주면 된다. ex. ‘Gildong, Hong’

CSV파일의 첫 레코드에는 열 제목이 포함될 수 있으며, 이는 일반적인 관행이라 생략이 가능하다.

CSV파일의 크기가 클 것으로 예상되는 경우 한 번에 모든 레코드를 읽지 않는 것이 좋다.

레코드, 필드에 대한 이해를 돕기 위한 사진 레코드, 필드이해 (251107, 박동윤, 70, 75, 80) 이 모두를 통틀어 레코드라 하고,
필드는 각 자료값을 말한다. (251107), (박동윤)

CSV 장단점 (중요)

장점
간단하고 이해하기 쉬운 구조
( 구분자를 통해 파일의 구조를 이해하고 쉽게 사용할 수 있다 )

범용적인 호환성
( 대부분의 스프레드시트나 DB, 프로그래밍언어에서 지원한다 )

편집의 용이성
( 간단한 텍스트편집기로도 열고 수정가능하다 )

경량성
( 크기가 큰 데이터셋도 비교적 작은 파일로 줄여서 저장가능 )

단점
표준의 부재
( CSV형식에 대한 엄격한 표준이 없음, 따라서 구분자나 인코딩 형식이 서로 다른 시스템간의 호환성 문제가 있을 수 있음 )

복잡한 데이터 구조 지원 미흡
( 단순한 테이블 형식의 데이터를 나타내기에는 적합하나, 계층적이거나 복잡한 데이터 구조를 표현하기엔 어려움이 있다 )

데이터 타입의 명확성 부족
( 모든 데이터가 텍스트로 저장됨, 따라서 숫자, 날짜 등의 특정 데이터 타입을 명확하게 구분하기가 어렵다 )

취약한 보안
( CSV파일은 암호화되지않은 일반 텍스트 형식이기 때문에 민감한 데이터를 보호하기엔 적합하지 않다 )

데이터를 설명하는 index와 columns 객체

DF에서는 다음과 같이 index와 columns 객체를 정의하여 사용한다.
인덱스, 컬럼스이해 index는 행(세로), columns는 열(가로)에 대한 내용이다.
이외에도 대화형 테이블 기능, 시각화 기능, 생성형 인공지능을 제공하는 듯하다.

각 행에서는 인덱스에 0부터 시작해 1씩 증가하는 정수가 자동으로 부여된다.
기존 인덱스로 정렬해도 좋지만 다른 좋은 기준이 있다면(ex.학번) 그것을 인덱스로 활용하는것이 좋을것이다.

판다스의 read_csv() 함수에는 index_col이라는 키워드 인자가 제공되는데, 이 키워드 인자에 0을 넘겨주면 첫 번째 열이 인덱스로 사용된다. 혹은, set_index() 메소드로도 원하는 열을 선택해 인덱스로 활용가능하다.

ioc 인덱싱과 iloc 인덱싱의 차이

우선, 둘다 판다스 DF에서 데이터를 선택하기 위해 사용되는 대표적인 인덱싱 방법이다.

ioc는 DF의 특정한 레이블을 이용한 인덱싱이며,
때로는 특정한 조건을 명시해 가독성을 올린 좋은 방법으로 데이터에 접근할 수 있다.

iloc는 integer location의 약자이며,
DF에서 행이나 열의 순서를 나타내는 정수값 형식의 위치를 기반으로 하는 인덱싱이다.

67 페이지

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.