2. 파이썬으로 데이터 주무르기, pandas
pandas를 활용해서 데이터프레임을 다뤄봅시다.
- Pandas 시작하기
- prerequisite : Table
- pandas import하기
- Pandas로 1차원 데이터 다루기 - Series
- Series 선언하기
- Series vs ndarray
- Series vs dict
- Series에 이름 붙이기
- Pandas로 2차원 데이터 다루기 - dataframe
- dataframe 선언하기
- from csv to dataframe
- dataframe 자료 접근하기
I. pandas 시작하기
Prerequisite : Table
- 행과 열을 이용해서 데이터를 저장하고 관리하는 자료구조 (컨테이너)
- 주로 행은 개체, 열은 속성을 나타냄
Pandas 시작하기
import pandas
를 통해서 진행
import pandas as pd
II. pandas로 1차원 데이터 다루기 - Series
Series?
- 1-D labeled array
- 인덱스를 지정해줄 수 있음
Series + Numpy
- Series는 ndarray와 유사하다.
이전의 파이썬의 List 때에는 이런 기능을 사용할 수 없었다. (함수를 만들어야됨)
pandas의 Series는 이런 기능을 지원하기 때문에 편리하게 데이터를 필터링해서 가져올 수 있다.
Series와 Numpy와는 유사한 부분이 많다.
그렇기 때문에 Numpy의 내장함수들을 Series에서 사용 가능하다.
Series + dict
- Series는 dict와 유사하다.
딕셔너리 데이터에서 값을 가져오는데, 키가 없으면 KeyError 발생
\(\Rightarrow\) .get() 함수를 사용
Series에 이름 붙이기
- 'name' 속성을 가지고 있다.
- 처음 Series를 만들 때 이름을 붙일 수 있다.
III. Pandas로 2차원 데이터 다루기 - dataframe
dataframe??
- 2-D labeled table (쉽게 말해 엑셀의 표 생각하면 됨)
- 인덱스를 지정할 수 있다.
DataFrame은 리스트만 가지고는 만들기가 어렵다.
따라서, 딕셔너리로 만드는게 쉽다.
DataFrame은 여러가지 데이터 타입을 담을 수 있기 때문에 이를 확인해주는 작업이 중요
나중에 EDA에서 사용된다.
dtype 확인
Numpy인 경우 : numpy.array.dtype
pandas인 경우 : .dtypes 사용 (DataFrame에는 여러 컬럼이 존재하기 때문에 's'가 붙여짐)
From CSV to Dataframe
- comma Separated Value(CSV)를 DataFrame으로 생성해줄 수 있다.
.read_csv()
를 이용
기존의 데이터를 dataframe화 시켜서 많이 사용한다.
대중적으로 csv 파일을 사용
187 rows × 15 columns
Pandas 활용 1. 일부분만 관찰하기
- 데이터가 너무 방대해서 다 참조하는 것이 힘들기 때문에
head(n)
: 처음 n개의 데이터 참조
tail(n)
: 마지막 n개의 데이터를 참조
Pandas 활용 2. 데이터 접근하기
df['column_name']
ordf.column_name
Honey Tip! DataFrame의 각 column은 "Series"다.
- Series에서 배웠던 것들을 활용가능
Pandas 활용 3. "조건"을 이용해서 데이터 접근하기
Pandas 활용 4. 행을 기준으로 데이터 접근하기
인덱스를 이용해서 가져오기 : .loc[row, col]
숫자 인덱스를 이용해서 가져오기 : .iloc[row_idx, col_idx]
Pandas 활용 5. groupby
데이터 테이블을 3가지 과정을 거쳐서 더 좋은 결과를 얻는 것
- Split : 특정한 "기준"을 바탕으로 DataFrame을 분할
- Apply : 통계함수 - sum(), mean(), median(), ... 을 적용해서 각 데이터를 압축
- Combine : Apply된 결과를 바탕으로 새로운 Series를 생성 (group_key : applied_value)
groupby()
'프로그래머스인공지능스쿨' 카테고리의 다른 글
[4주차 - Day1] Web Application with Flask (0) | 2021.05.11 |
---|---|
[3주차 - Day4] Python으로 시각화하기 - Matplotlib (0) | 2021.05.06 |
[3주차 - Day2] Python으로 데이터 다루기 I - numpy (0) | 2021.05.04 |
[3주차 - Day2] 참고 : Git (0) | 2021.05.04 |
[3주차 - Day1] 인공지능 수학 - 추정, 검정, 엔트로피 (0) | 2021.05.03 |