본문 바로가기
데이터분석/데이터분석

[alice] numpy, pandas

by merona99 2020. 7. 17.
반응형

파이썬으로 시작하는 데이터 분석

 

alice 온라인 -> '파이썬으로 시작하는 데이터 분석'

여기에다가 기록하도록 하겠다.

 

 

※ 루프는 느리다.

 

 

 

[NumPy]

 

  • array = 단일타입 (array처럼 여러개 안댐)
  • np.linspace(0,1,5) -> 0~1을 5구간으로 나눔

<난수>

  • np.ndim : 몇차원?
  • np.concatenate([x,y]) : x array + y array (이어붙이기)
  • axis=0 아래방향으로, axis = 1 옆방향으로
  • np.split('np', [x], axis=0) : np의 x번째를 axis=0을 기준으로 2개의 array로 나누기
  • 기본연산 o
  • broadcasting : shape이 다른 array끼리 연산            // 이거 인공사부분에서 다뤄서 세세히 안쓰겠다.
  • 집계함수 : sum(), min, max, mean

 

마스킹연산 : True, False를 통해 인덱싱

ex) x[x>3]

 

 

 

 

[Pandas]

 

Series : numpy, array가 보강된 형태, Date, Index를 가짐 (dtype='int64')

  • dic와 비슷하고 dic로 만들 수 있음

 

DataFrame : 여러개의 series가 모여서 행, 열을 이룬 데이터 (dtype='object')

  • series 연산자 그대로 사용

※ df['name'] = values --> name열과 해당 values를 df에 추가

 

 

<저장 & 불러오기>

df.to_csv("경로") : .csv 파일 저장

df.to_excel("경로") : .xlsx 파일 저장

df.read_csv("경로") : .csv 파일 불러오기

df.read_excel("경로") : .xlsx 파일 불러오기

 

※ e+0.n 의 뜻 : 앞의 값 * 10^n

// 궁금증이 여기서 풀림ㅋㅋ

 

 

<인덱스 선택>

loc : 명시적인 인덱스 참조

iloc : 정수 인덱싱/ 슬라이싱

 

<컬럼 선택>

df["caloumn"]

컬럼 1개 -> series

컬럼 리스트로 N개 -> DataFrame

(위 두개는 타입이 다르게 나옴)

 

 

<누락 데이터>

df.isnull() : nan, None 인 경우 True

df.notnull()

df.dropna() : 누락된 부분 행 삭제

df.fillna('~') : nan -> '~' 대체

 

A.add(B, fill_value=0)

add --> 사칙연산, 함수로사용

fill_value = 0 --> nan -> '0'으로 대체

          (만약 A(2차원), B(3차원)일경우 A의 비어있는 값에 '0'이 들어가고 연산)

 

 

<값으로 정렬>

df.sort_values('컬럼', ascending='bool')

  • 해당 값들로 sort
  • ascending = True 오름차순, False 내림차순

 

df.sort_values(['컬럼1', '컬럼2']) : 컬럼1 sort 후 컬럼2 sort

 

 

 

 

[Pandas 심화]

 

<조건검색>


1. df["A"].str.contains("cat") : A에 cat이 포함되나?

2. df["A"] == "cat"

3. 정규표현식

4. df.query("A<0.5 and B>0.3")

 

 

<함수>

 

(둘다 같은 의미)

df["num"].apply(square) : square(x)함수 사용

df["num"].apply(lambda x : x**2)

 

df.컬럼.replace({'a':0}, inplace='bool') : 데이터 값만 교체

  • inplace가 True이면 df가 바로바뀜 (default = False)

 

 

<group>

 

df.groupby('key') : 'key' 컬럼의 값들로 묶음

df.groupby('key').aggregate(['min',np.median, max]) : 집계를 한번에 계산

 

filter : 데이터 필터링

df.groupby('key').filter('함수') : 함수 내용으로 필터링       // 당연히 함수는 따로 선언되어 있겠죠?

※ 그루핑된 그룹에 apply 적용 가능

 

df.groupby('시도').get_group('충남') : '시도'로 묶인 그룹에서 '충남'의 이름을 가진 데이터를 가져옴

 

 

 

<multoindex>

 

(예시)

index = [ ['a', 'a', 'b', 'b'], [1,2,1,2,] ]

인덱스, 컬럼 모두 다중일 경우 인덱싱은 계층적으로 함 (인덱스 -> iloc, loc 사용)

 

 

pivot_tavle

  • index : 행 인덱스 key
  • column : 열 인댁스 라벨링될 값
  • value : 분석 할 데이터

 

내가 정리한 pivot_table 그림^_^

(문제풀때 구성이 자꾸 헷갈려서 위에처럼 아예 그리고 한다 ㅋㅋㅋㅋㅋ)

 

 

 

[문제]

여러 실습중 마지막 문제를 가져왔따.

 

 

[코드]

문제 풀면서도 헷갈렸다.

옆에 지시문이 있어서 그거보면서 했당.

 

 

 


 

 

// 수업내용이 이 인강을 통해서 정리되는 기분이 들어서 좋았다.!

   앞으로 수업 진도에 맞추어서 인강을 적극 활용해야겠다고 다짐한다.

반응형

'데이터분석 > 데이터분석' 카테고리의 다른 글

[pandas] 인덱스 재정렬, 결측치 변환  (0) 2020.09.14
[alice] 파이썬 크롤링  (0) 2020.09.04
[alice] 월드컵 데이터 분석(이수)  (64) 2020.07.21
[alice] Matplotlib  (0) 2020.07.19

댓글