본문 바로가기
Python/Python 기초

Pandas 패키지 소개

by 찐남 2021. 8. 11.
NumPy 패키지와 함께 Python을 이용해서 데이터 분석하기 위해서 필요한 패키지(Pandas)를 소개하고, 패키지 설치 방법에 대해서 알아보겠습니다. 본 포스팅은 Pandas 공식 페이지를 기반으로 작성하였습니다. 내용이 어렵다면, Python에서 데이터 구조 및 분석을 위해 필요한 라이브러리 정도로 이해하고, 넘어가도 좋습니다. 다만, 코드 실행을 위해 5. Pandas 설치하기는 꼭 숙지하시기 바랍니다. 

 

 



 

1. Pandas 패키지 개요

 

pandas는 "관계형" 또는 "라벨이 있는" 데이터를 쉽고 직관적으로 사용할 수 있도록 설계된 빠르고 유연하며 표현력이 뛰어난 데이터 구조를 제공하는 Python 패키지입니다. Python에서 실용적이고 실제적인 데이터 분석을 수행하기 위한 기본적이고 높은 수준의 빌딩 블록이 되는 것을 목표로 합니다. 또한 모든 언어에서 사용할 수 있는 가장 강력하고 유연한 오픈 소스 데이터 분석/조작 도구가 되는 더 넓은 목표도 가지고 있습니다. 이미 이 목표를 향해 잘 가고 있습니다. 

 

pandas는 다양한 종류의 데이터에 매우 적합합니다.

 

  • SQL 테이블 또는 Excel 스프레드시트에서와 같이 유형이 다른 열이 있는 테이블 형식 데이터(i.e 데이터 프레임)
  • 정렬 및 정렬되지 않은(반드시 고정 빈도는 아님) 시계열 데이터
  • 행 및 열 라벨이 있는 임의의 행렬 데이터(동종 유형 또는 이종)
  • 기타 모든 형태의 관찰/통계 데이터 세트. pandas 데이터 구조에 배치하기 위해 데이터에 라벨을 지정할 필요가 전혀 없습니다. 

pandas의 두 가지 기본 데이터 구조인 Series(1차원) 및 DataFrame(2차원)은 금융, 통계, 사회 과학 및 많은 엔지니어링 영역에서 매우 다양하게 사용되는 일반적인 데이터 구조를 처리합니다. R 사용자의 경우 DataFrame은 R의 data.frame이 제공하는 모든 것과 훨씬 더 많은 것을 제공합니다. pandas는 NumPy 위에 구축되었으며 과학 컴퓨팅 환경 내에서 다른 많은 타사 라이브러리와 잘 통합되도록 고안되었습니다. 

 

다음은 pandas가 잘하는 몇 가지 경우입니다.

 

  • 부동 소수점 및 비 부동 소수점 데이터에서 누락된 데이터(NaN으로 표시)를 쉽게 처리
  • 크기 가변성: DataFrame 및 더 높은 차원의 개체에서 열의 삽입 및 삭제 가능
  • 자동 및 명시적 데이터 정렬: 개체를 라벨 집합에 명시적으로 정렬하거나 사용자가 라벨을 무시하고 Series, DataFrame 등이 계산에서 자동으로 데이터 정렬 가능
  • 데이터 집계 및 변환을 위해 데이터 세트에 대해 분할-적용-결합 작업을 수행하는 강력하고 유연한 group by 함수
  • 다른 Python 및 NumPy 데이터 구조에서 비정형적이고 다르게 인덱스 된 데이터를 DataFrame 객체로 쉽게 변환
  • 지능적인 라벨 기반 슬라이싱, 인덱싱 및 대규모 데이터 세트의 하위 집합
  • 직관적인 데이터 세트 병합 및 결합
  • 데이터 세트의 유연한 재구성 및 피벗
  • 축의 계층적 라벨 지정(틱당 라벨이 여러 개 있을 수 있음)
  • 플랫 파일(CSV 및 구분 기호), Excel 파일, 데이터베이스에서 데이터를 로드하고 초고속 HDF5 형식에서 데이터를 저장/로드하기 위한 강력한 IO 도구
  • 시계열 특화 함수: 날짜 범위 생성 및 빈도 변환, 창 통계 이동, 날짜 이동 및 래깅

 

이러한 원칙 중 다수는 다른 언어/과학 연구 환경을 사용하여 자주 경험하는 단점을 해결하기 위해 여기에 있습니다. 데이터 과학자의 경우 데이터 작업은 일반적으로 여러 단계(데이터 정리 및 정리, 분석 / 모델링 / 분석 결과를 플로팅 혹은 표 표시 에 적합한 형식으로 구성)로 나뉩니다. pandas는 이러한 모든 작업에 이상적인 도구입니다. 

 

아래 3가지는 기타 참고 사항입니다.

 

  • pandas는 처리 속도가 빠릅니다. 많은 저수준 알고리즘 비트가 Cython 코드에서 광범위하게 조정되었습니다. 그러나 다른 모든 것과 마찬가지로 일반화는 일반적으로 성능을 희생합니다. 따라서 응용 프로그램의 한 기능에 집중하면 더 빠른 전문 도구를 만들 수 있습니다. 
  • pandas는 statsmodels의 종속성이므로 Python의 통계 컴퓨팅 생태계에서 중요한 부분이 됩니다.
  • pandas는 금융 애플리케이션의 프로덕션에 광범위하게 사용되었습니다. 

 

 



 

 

2. 데이터 구조

 

차원 이름 설명
1 Series 1차원 라벨이 지정된 동종 유형 배열
2 DataFrame 잠재적으로 유형이 다른 열이 있는 일반 2차원 레이블, 크기 변경 가능한 테이블 구조

 

2.1. 데이터 구조가 2개 이상인 이유

 

pandas 데이터 구조에 대해 생각하는 가장 좋은 방법은 저 차원 데이터를 위한 유연한 컨테이너입니다. 예를 들어 DataFrame은 Series의 컨테이너이고 Series는 스칼라의 컨테이너입니다. 우리는 사전과 같은 방식으로 이러한 컨테이너에서 개체를 삽입하고 제거할 수 있기를 원합니다. 

 

또한 시계열 및 단면 데이터 세트의 일반적인 방향을 고려하는 일반적인 API 기능에 대한 합리적인 기본 동작을 원합니다. N차원 배열(ndarrays)을 사용하여 2차원 및 3차원 데이터를 저장하는 경우, 함수를 작성할 때 데이터 집합의 방향을 고려해야 하는 부담이 사용자에게 있습니다. 축은 어느 정도 동등한 것으로 간주됩니다. pandas에서 축은 데이터에 더 의미론적인 의미를 부여하기 위한 것입니다. 다시 말해서, 특정 데이터 세트의 경우 데이터 방향을 지정하는 "올바른" 방법이 있을 수 있습니다. 따라서 목표는 다운스트림 기능에서 데이터 변환을 코딩하는 데 필요한 정신적 노력의 양을 줄이는 것입니다. 

 

예를 들어, 테이블 형식 데이터(DataFrame)의 경우 축 0과 축 1보다 인덱스(행)와 열을 생각하는 것이 의미론적으로 더 도움이 됩니다. 따라서 DataFrame의 열을 반복하면 더 읽기 쉬운 코드가 생성됩니다. 

 

3. 데이터의 변경 및 복사

 

모든 pandas 데이터 구조는 값을 변경할 수 있지만(포함된 값은 변경할 수 있음) 항상 크기를 변경할 수 있는 것은 아닙니다. 예를 들어, Series의 길이는 변경할 수 없지만, 열을 DataFrame에 삽입할 수는 있습니다. 그러나 대부분의 방법은 새로운 개체를 생성하고 입력 데이터는 그대로 둡니다. 일반적으로 합리적인 경우 불변성을 선호합니다. 

 

4. 지원(Support)

 

pandas 문제와 아이디어의 첫 번째 중지는 Github Issue Tracker입니다. 일반적인 질문이 있으면 pandas 커뮤니티 전문가가 Stack Overflow를 통해 답변할 수 있습니다. 

 

5. pandas 설치하기

 

이미 Python이 설치되어 있는 경우 명령프롬프트 창을 실행하여 (윈도우 + R을 누르고, cmd 입력) pandas를 설치할 수 있습니다.

 

pip install pandas

 

 

pandas 라이브러리가 잘 설치되었음을 확인할 수 있습니다.

 

 

 

 

반응형

댓글