- 데이터를 다루고 분석하기 위해서는 수만 개의 데이터셋을 불러오고 가공하고 분석해야 함
- 그래프나 통계적인 방법
- EDA 를 위해 Numpy, pandas 사용
- Numpy 와 pandas 차이
NumPy는 다차원 배열을 다루는 데 특화되어 있으며, Pandas는 데이터 조작과 분석을 위한 테이블 형식의 데이터를 다루는 데 특화되어 있습니다.
- https://challenge.tistory.com/32
- https://cleancode-ws.tistory.com/13
01 Numpy 객체 기본
- 주로 array 함수 사용
- 이 외에도 특수한 행렬의 형태를 생성하기 위한 함수 다수 존재
- 배열 생성은 1~다차원 구조 가능
- 전차행렬 등 선형대수 관련 연산 가능
배열 생성
- .reshape : 행렬의 모양을 지정해 준다.
- .ones: 지정된 모양(shape)과 데이터 타입(dtype)을 갖는 모든 요소가 1인 배열을 생성한다.
배열의 색인
- arr[row index, colume index]
- list 구조의 슬라이싱은 list[0][:2]
- list vs numpy.array 차이 : https://wnwa.tistory.com/2
배열의 메서드 및 어트리뷰트
- 객체와 연결되어 있는 함수!
* numpy와 pandas는 기본적으로 통계량을 산출할 때 자유도가 다름
- numpy 기본적으로 dof 설정 안 해주면 0
- pandas 기본적으로 dof 설정안해주면 1
다양한 함수 function
: 내장 함수, 사용자 지정 함수
- set 집합함수. 중복제거를 해줌. 중복된 원소를 사용하지 않음
- np.unique() : numpy의 라이브러리이기 때문에 위에서 사용한 메서드가 아니라 unique 함수이다
- .arange(6) = array([0, 1, 2, 3, 4, 5]) # 0부터 5까지. 갯수 6 이 아닌 index 6 이전까지
- Numpy는 명시적 인덱스 없이 '0'부터 정수형 인덱스를 사용하여 접근
- Pandas는 명시적 인덱스 존재
02 Pandas 객체
- 호출: import pandas as pd
Series 개요
- 1차원 객체. index, value로 구성. Series() 함수와 대괄호를 사용하여 생성
- index 지정하지 않으면 0부터 차례대로 지정됨
시리즈의 생성 및 메서드
- pandas 기본적으로 dof 설정 안 해주면 1
-. isin() : 해당 값이 있으면 value 자리에 True로 표현, 아니면 False로 표현. 필터링할 때 사용!
시리즈의 색인
DataFrame 개요
- 2차원 객체. Series를 여러 개 붙인 것으로 생각!
- row/ column index 존재
색인
- 헷갈리니 주의!
03 데이터 요약
cross tab
- 두 변수를 조합하여 살펴볼 때 사용하는 pandas 함수
- normalize 인자에 True, 1, 0 값을 할당하여 값을 정규화할 수 있음
groupby
- 특정 변수를 기준으로 요약 연산할 때 활용하는 데이터프레임의 메서드
- 두 개 이상의 변수를 기준으로 연산할 경우 변수명을 리스트로 묶음
- DataFrame 공부 https://wikidocs.net/151821
01. "객체 간 연산 " DataFrame과같은 객체간의 연산을 하는 경우
02. DataFrame객체 내에서 요소간 연산을 하는경우
* DataFrame.sum()
axis : { 0 : 행 / 1 : 열}
skipna : {True or False} Na가 존재할 경우 무시할지의 여부입니다. 기본값은 True입니다.
*DataFrame.groupby()
03.함수적용) 03-01. 축 기준 (apply)
apply 메서드는 DataFrame에 함수를 적용하여 반환하는 메서드
함수에 전달되는 객체는 Seires형식이며 DataFrame의 index(axis=0)이냐 columns(axis=1)이냐에 따라 다릅니다.
df_notnull.apply(np.sum, axis=1)
04.인덱싱)
04-01. 레이블기반_스칼라 (at) : DataFrame과 Series에 상관없이 하나의 스칼라값에 접근한다는 차이가 존재
04-02. 레이블기반_데이터 (loc) : DataFrame이나 Series형식으로의 반환
04-04. 정수기반_데이터 (iloc)
* at
값 가져오기 : result = df.at['행', '열'] result = df.at['row1', 'col2']
값 설정하기 : df.at['행', '열'] = value df.at['row2', 'col1'] = '변경'
*loc
값 가져오기 : result = df.loc['행', '열']
값 설정하기 : df.loc['행', '열'] = value
'Data Science > 실습' 카테고리의 다른 글
DS 실습 11- 상관분석(Pandas.corr, scipy) (0) | 2024.12.05 |
---|---|
DS 실습9~10-데이터전처리(정렬 및 변환-crosstab, sort_values, melt/ def) (0) | 2024.12.01 |
DS 실습6~8- 데이터전처리(결측치,이상치,파생변수,데이터병합) (0) | 2024.11.24 |
DS 실습5- 표본 추출(sample, random_state, train_test_split) (0) | 2024.11.23 |
DS 실습1~3- Python 기본문법 (0) | 2024.11.22 |