0. Pandas
판다스는 고수준의 자료구조와 파이썬을 통한 빠르고 쉬운 데이터 분석 도구를 제공한다. for문을 사용하지 않고 데이터를 처리한다거나 배열 기반의 함수를 제공하는 등 넘파이의 배열 기반의 계산 스타일을 많이 차용했다.
판다스는 넘파이의 스타일을 많이 차용했지만 가장 큰 차이점은 표 형식의 데이터나 다양한 형태의 데이터를 다루는데 초점을 맞춰 설계했다는 점이다.
1. 판다스 자료구조
Series
- 일련의 객체를 담을 수 있는 1차원 배열 같은 자료구조
import numpy as np import pandas ad pd from pandas import Series, DataFrame
obj = pd.Series([4, 7 -5, 3], index = ["d", "b", "a", "c"]) # index의 default는 오름차순 숫자
obj
obj.array # obj의 속성을 얻을 수 있음
obj.index # obj의 속성을 얻을 수 있음
- 파이썬 딕셔너리 객체로부터 Serires를 생성할 수도 있고, to_dict를 통해 변환할 수 도 있다.
```python
sdata = {"Ohio": 35000, "Texas": 71000, "Oregon": 16000, "Uath": 5000}
obj3 = pd.Sereies(sdata)
obj3.to_dict()
- 누락된 데이터를 찾을 수 있다
pd.isna(obj4) pd.notna(obj4)
- Series는 색인과 레이블로 자동 정렬이 가능하다.
obj3+obj4 # 자동정렬이 되서 더해진다
DataFrame
- DataFreme은 행과 열에 대한 색인을 가지며, 색인의 모양이 같은 Series 객체를 담고 있는 파이썬 딕셔너리로 생각하면 편하다.
data = {"state":["Ohio", "Ohio","Ohio", "Nevada", "Nevada","Nevada"], "year: [2000, 2001, 2002, 2002, 2003, 2003], "pop": [1.5, 1.7, 3.6, 2.4, 2.9, 3.2] frame = pd.DataFrame(data)
- head() 를 통해 처음 5개, tail()를 통해 마지막 5개 행을 출력할 수 있다.
- 딕셔너리에 없는 값을 columns에 넘기면 결과에 결측치(missing value)가 표시된다.
- del 예약어를 사용해 열이나 행을 삭제할 수 있다.
del frame2["Ohio"]
- DataFrame의 색인을 이용해서 얻ㄴ은 열은 내부데이터에 대한 뷰일 뿐이며 복사가 이루어 지지 않느다. 따라서 얻은 Series 객체에 대한 변경은 실제 DataFrame에 반영된다. 복산이 필요할 때는 Series의 copy()를 사용하자.
- DataFrame 생성을 위한 입력 데이터의 종류
- 2차원 ndarray
- 배열, 리스트, 튜플의 딕셔너리
- 넘파이의 구조화 배열
- Series의 딕셔너리
- 딕셔너리의 딕셔너리, Series의 리스트
- 다른 DataFrame
- 넘파이 MaskedArray
- DateFrame의 탐색
frame3.index.name = "year" frame2.column.name = "state"
- DateFrame의 to_numpy()는 DataFrame에 포함된 데이터를 2차원 형태의 ndarray로 변환한다.
'IT > Data Analysis with python' 카테고리의 다른 글
데이터 로딩과 저장, 파일 형식 (1) | 2024.06.02 |
---|---|
판다스 시작하기: 핵심기능 및 기술 통계 계산 (1) | 2024.06.02 |
넘파이 기본: 배열과 백터연산 02 (0) | 2024.05.17 |
넘파이 기본: 배열과 백터연산 01 (0) | 2024.05.17 |
데이터 분석에 파이썬을 사용하는 이유 (0) | 2024.05.17 |