2023. 12. 8. 17:47ㆍ컴퓨터공학 전공공부/오픈소스 SW개론
1. Pandas란 무엇인가?
Pandas란 무엇인가?
판다스는 빠르고 쉽게 데이터를 cleaning(청소)하고, 분석할 수 있게 돕는 데이터 구조와 도구들을 가지고 있다. NumPy, SciPy와 같은 수치 계산 도구들이나, statsmodels, scikit-learn 같은 분석적 라이브러리, matplotlib과 같은 데이터 시각화 라이브러리 등과 함께 쓰인다. NumPy와 마찬가지로, 배열 기반이며 for loop 사용 없이 데이터를 가공할 수 있다. 한편 NumPy와는 달리 표 형식의 데이터, 이종의 데이터를 다룰 수 있게 설계되어 있다. (NumPy는 동종의 데이터만 다룰 수 있다.)
Pandas의 데이터 구조
크게 두 가지가 있다. : Series, DataFrame
2. Series
Series란 무엇인가?
series는 1차원의 배열과 유사한 객체이다. 배열의 데이터 라벨을 가지고 있으며, index라 부른다. 한편, index-value 연결은 NumPy 함수 사용 등 여러 동작을 수행해도 끊기지 않는다.
value, index
라벨을 이용한 인덱싱
파이썬 dictionary와 series
파이썬의 dictionary와 series는 유사하다. 파이썬 dictionary를 통해 series를 만들 수 있다.
짝이 없는 index의 접근
index에 해당하는 value가 없을 때, 그 index에 대한 value는 NaN(not a number)로 설정된다.
isnull, notnull
isnull, notnull 함수는 null인지 여부를 판단하는 함수로, isnull은 null이면 true, notnull은 null이면 false를 반환한다.
두 series의 덧셈
name
series 객체 자체와 series 안의 index 둘 다 name이라는 속성을 가지고 있다. series 객체와 index에 이름을 붙여줄 수 있다. name은 데이터를 설명하는 데이터, 메타데이터라고 할 수 있다.
3. DataFrame
DataFrame이란?
DataFrame은 이종의 데이터들을 직사각형 표로 나타낸다. row index, column index가 있으며 series들로 이루어진 dictionary (nested dictionary)라고도 볼 수 있다.
NumPy 배열을 value로 갖는 dictionary를 이용해 DataFrame 생성
index는 자동으로 series 인자들로 매겨지며, DataFrame을 통해 브라우저 친화적인 HTML 표를 얻을 수 있다.
head
상위 5행을 출력하는 함수이다. 큰 데이터프레임을 다룰 때 용이하다.
DataFrame의 columns 인자, index 인자
데이터프레임의 인자로 columns = 열 순서 배열을 주어 열 순서 배열대로 column을 재배열할 수 있다.
데이터프레임의 인자로 index = 행 순서 배열을 주어 행 순서 배열대로 row를 재배열할 수 있다.
column 값, row 값을 이용한 데이터프레임 접근
column에 series 할당
column 추가하기, 지우기
nested dictionary를 데이터로 받는 데이터프레임
데이터프레임의 전치
인덱스로써 기능하는 dictionary의 키
인덱스가 명시적으로 지정되어 있지 않은 경우에서, dictionary의 키는 자동적으로 인덱스로써 기능한다.
데이터프레임의 인덱스(row), column에 이름 붙이기
values
데이터프레임의 데이터(values)를 이차원 ndarry 형태로 출력하는 attribute이다. 데이터프레임의 column(열)을 구성하는 값들의 타입이 모두 같지 않을 경우 값들을 배열로 출력한다.
4. Index Objects
판다스의 index 객체들
인덱스 객체란, 축 라벨 및 기타 메타데이터를 보유하는 역할을 하는 객체이다.
index 객체의 속성
- 수정 불가능
- 판다스의 인덱스 객체는 사용자에 의해 수정될 수 없으며, 수정을 시도하면 에러가 발생한다. 여러 개의 데이터 구조 간 인덱스 객체의 공유를 안전하게 만든다.
- 고정 크기의 집합
- 인덱스 객체는 배열과 비슷한 형태로써, 고정 크기의 집합처럼 기능한다.
- 중복 라벨 가능
- 파이썬 집합과 달리, 인덱스 객체는 중복 원소(라벨)을 허용한다.
'컴퓨터공학 전공공부 > 오픈소스 SW개론' 카테고리의 다른 글
오픈소스sw개론 Part2, chap 6. NumPy Example, Random Walks (0) | 2023.12.01 |
---|---|
오픈소스sw개론 Part2, chap 6. NumPy (2) (0) | 2023.12.01 |
오픈소스sw개론 Part 2, chap 5. NumPy (1) (2) | 2023.11.30 |