Data Science/실습

DS 실습4- Numpy, pandas(Series,DataFrame)*

에너지_2 2024. 11. 22. 23:42
728x90
반응형

- 데이터를 다루고 분석하기 위해서는 수만 개의 데이터셋을 불러오고 가공하고 분석해야 함
- 그래프나 통계적인 방법
- 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부터 차례대로 지정됨

index 범주형 -> index를 직접 명시하는 일은 적음

 

시리즈의 생성 및 메서드

마지막 .std() 만 출력됨

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과같은 객체간의 연산을 하는 경우

더보기

 

 

https://wikidocs.net/151734

02. DataFrame객체 내에서 요소간 연산을 하는경우

더보기

* DataFrame.sum()

 axis : { 0 : 행 / 1 : 열} 

skipna : {True or False} Na가 존재할 경우 무시할지의 여부입니다. 기본값은 True입니다.

 

*DataFrame.groupby()

 

 

https://wikidocs.net/151872

03.함수적용) 03-01. 축 기준 (apply)

더보기

apply 메서드는 DataFrame에 함수를 적용하여 반환하는 메서드

함수에 전달되는 객체는 Seires형식이며 DataFrame의 index(axis=0)이냐 columns(axis=1)이냐에 따라 다릅니다.

 

df_notnull.apply(np.sum, axis=1)

https://wikidocs.net/151085

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

 

 

728x90
반응형