[Zero-Base DS]스터디노트_EDA(03)

HAHAHAEUN·2024년 4월 4일
post-thumbnail

주요 학습내용

1. Pandas의 pivot_table

2. pip명령과 condas명령

3. python의 for문

4. google maps 사용

I. Pandas의 pivot_table

1. 기본 구성요소

  1. 행 인덱스(index)
  2. 열 인덱스(column)
  3. 데이터 값(values)
  4. 데이터 집계함수(aggfunc, 연산식)

2. index 설정

  • 기초 자료가 아래와 같다고 하자
  • Case 1) Name컬럼 => 인덱스 설정, values = Quantity & Price
df.pivot_table(index="Name", values=['Quantity', 'Price'])

출력 결과 :

  • Case 2) 멀티 인덱스 설정
df.pivot_table(index=["Name", "Rep", "Manager"], values = ["Account", "Price", "Quantity"])

출력 결과 :

3. 연산적용(aggfunc)

  • Case 1) 1개의 연산 적용
df.pivot_table(index=["Manager", "Rep"], values=["Price"], aggfunc=np.sum)

출력 결과 :

  • Case 2) >1개의 연산 적용
df.pivot_table(
    index=["Manager", "Rep", "Product"],
    values=["Price", "Quantity"],
    aggfunc=[np.sum, np.mean],
    fill_value=0)

출력 결과 :

4. 컬럼 지정

# Product를 컬럼으로 지정
df.pivot_table(index=["Manager", "Rep"], values="Price", columns="Product", aggfunc=np.sum)

출력 결과 :

5. NaN값 설정(fill_value="값 지정")

df.pivot_table(index=["Manager", "Rep"], columns="Product", aggfunc=np.sum, fill_value=0)

출력 결과 :

II. pip명령과 condas명령

1. pip 명령

  • Python의 공식 모듈 관리자

  • pip.list : 현재 설치된 모듈 리스트 반환

    • get_ipython().system("pip list")도 같은 기능 수행
  • pip install module_name : 모듈 설치

  • pip uninstall module_name : 설치된 모듈 제거

2. conda 명령

  • pip를 사용하면 conda 환경에서 dependency 관리가 정확하지 않을 수 있다
  • anaconda에서는 가급적 conda 명령으로 모듈을 관리하는 것이 좋다
  • conda list : 설치된 모듈 list
  • conda install module_name : 모듈 설치
  • conda uninstall module_name : 모듈 제거
  • conda install -c channel_name module_name : 지정된 배포 채널에서 모듈 설치
    (그러나 모든 모듈이 conda로 설치되는 것은 아니다)

모듈 설치

  • Python 자체가 항상 사용할 모듈은 직접 설피해야 함
  • 단, 그중 많은 모듈을 포함한 배포판인 anaconda덕분에 하지 않는 것일 뿐
  • 따라서 직접 모듈 설치도 할 수 있어야 함

III. python의 for문

  • 모든 언어에는 다 반복문이 있다

1. Python의 반복문은?

  • MATLAB은 반복/조건/함수에 상관없이 end로 끝나게 해서 구분
  • C/C++은 중괄호로 구문의 시작과 끝 구분
  • Python은 들여쓰기(intent)로 구분

간단한 for문 예제

2. Pandas에 잘 맞춰진 반복문용 명령: iterrows()

  • Pandas 데이터 프레임은 대부분 2차원
  • 이럴 때 for문을 사용하면, n번째라는 지정을 반복해서 가독률이 떨어짐
  • Pandas 데이터 프레임으로 반복문을 만들때 itterows() 옵션을 사용하면 편함
  • 📌받을 때, 인덱스와 내용으로 나누어 받는 것만 주의

IV. google maps 사용

1. Google Maps API 설치하기

1) 구글에 'Google Cloud Platform(gcp)'검색
2) 우측 상단 콘솔 선택
3) 계정 생성 및 프로젝트 생성
4) API제한
5) prompt 설치

2. Google Map을 이용하여 주소/위치 정보 얻기

1) import googlemaps 실행한 후, 아래와 같이 결과 출력되는지 확인

  • 출력된 결과를 보면, 1개의 리스트 안에 다중 딕셔너리 형태로 들어가있는 것을 확인할 수 있다
    • 실제로 위 항목을 tmp에 담고, len(tmp)를 확인해보면, 1이라는 결과가 출력된다

2) 필요정보 추출

  • 위도, 경도 추출
# 필요정보 1) 위도, 경도
print(tmp[0].get("geometry")["location"]["lat"])
print(tmp[0].get("geometry")["location"]["lng"])
  • formatted_address
# 필요정보 2) formatted_address
tmp[0].get("formatted_address").split()
# .split() : 띄어쓰기로 구분되어서 리스트에 담아줌

tmp[0].get("formatted_address").split()[2]

[자료 출처] 제로베이스 데이터 스쿨

profile
할 거면 제대로 하자

0개의 댓글