판다스 기초 배우는 중 - 2월 23일

조준수·2023년 2월 25일
0

오티 2~3

[EDA/웹 크롤링/파이썬 프로그래밍] 16 이론 - colab 소개

  1. 구글 코랩 접속
    (1) http://colab.research.google.com
    (2) 파일 - 새 노트

  2. 코드가 입력된 셀 실행 방법
    (1) shift + enter
    (2) 또는 왼쪽 삼각형 모양의 플레이 버튼 선택

  3. 런타임 메뉴 이해하기
    (1) 각 셀의 실행과 중단, 재실행 등 기능 제공
    (2) 모두 실행 : 긴 노트의 코드를 한 번에 실행하는 명령
    (3) 실행 중단 : 어떤 이유든 응답이 없거나 긴 시간 실행 중인 경우 코드를 중단하는 명령
    (4) 런타임 다시 시작 : 메모리에 저장된 변수나 실행 결과를 모두 초기화하고 다시 코드를 실행
    (5) 도구 - 명령 팔레트(Ctrl + Shift + P)

  4. matplotlib 한글 문제 해결
    (1) 쓸 때마다 한글 설치하고 런타임 초기화를 해줘야 한다.

  5. colab 문서화 작업
    (1) 런타임에 업로드를 하는 경우 시간이 지나거나 다시 런타임을 시작하면 삭제
    (2) 일시적인 학습이나 작은 크기의 데이터 사용 가능
    (3) 영구 접근을 위해서 구글 드라이브와 연동
    (4) !ls : 파일 목록 조회

  6. colab과 구글 문서 도구 연동

[EDA/웹 크롤링/파이썬 프로그래밍] 18 실습 - colab matplotlib

  1. matplotlib 한글 문제 해결
    (1) !apt-get update -qq
    (2) !apt-get install fonts-nanum* -qq
    (3) 설치
    (4) import matplotlib.pyplot as plt
    (5) import matplotlib as mpl
    (6) %matplotlib inline
    (7) plt.rcParams['axes.unicode_minus'] = False
    (8) path = '/usr/share/fonts/truetype/nanum/NanumGothic.ttf'
    (9) font_name = mpl.font_manager.FontProperties(fname=path).get_name()
    (10) mpl.rc('font', family=font_name)
    (11) mpl.font_manager._rebuild()
    (12) 실행 후 런타임 다시 시작

[EDA/웹 크롤링/파이썬 프로그래밍] 19 실습 - colab markdown

  1. 네이버 실행
    (1) 네이버

CCTV 1

1 이론 - 서울시 CCTV 현황 분석 프로젝트 소개 및 데이터 출처

  1. 순서
    (1) 서울시 구별 CCTV 현황 데이터 확보
    (2) 인구 현황 데이터 확보
    (3) CCTV 데이터와 인구 현황 데이터 합치기
    (4) 데이터 정리하고 정렬하기
    (5) 그래프 그리기
    (6) 전체적인 경향을 파악하기
    (7) 경량에서 벗어난 데이터 강조하기

  2. 데이터 얻기
    (1) 구글신에게 '서울시 자치구 연도별 cctv 설치 현황' 물어보기
    (2) ds_study - data 폴더에 저장
    (3) 파일 이름을 01.Seoul_CCTV.csv로 변경
    (4) 서울 열린 데이터 광장 - 데이터 이용하기 - 오픈 API 서비스 선택
    (5) 서울 구별 인구 통계를 XLS 파일로 받기
    (6) 서울 구별 인구 통계를 data 폴더에 01. Seoul_Population.xls로 이름 변경

2 이론 - 서울시 CCTV 현황 분석 데이터 읽기

  1. Pandas로 CSV, 엑셀 파일 읽기
    (1) Python에서 R만큼의 강력한 데이터 핸들링 성능을 제공하는 모듈
    (2) 단일 프로세스에서는 최대 효율
    (3) 코딩 가능하고 응용 가능한 엑셀

  2. 데이터 읽기
    (1) csv 파일은 처음에 엑셀로 열면 한글이 깨지고 메모장으로 열면 보인다. 이유는 엑셀이 utf-8을 지원하지 않기 때문이다.
    (2) pandas.read_csv('파일 경로', encoding='utf-8')
    (3) 파일 경로는 어느 정도 쓰다가 tap을 누르면 자동 완성이 될 수 있다.
    (4) CCTV_Seoul.head( )는 데이터의 앞 부분 5개만 보여달라는 명령어
    (5) 데이터의 세로 방향은 Index, 가로 방향은 Column이다.
    (6) CCTV_Seoul.columns는 column의 이름을 조회한다.

  3. 데이터 이름 변경
    (1) CCTV_Seoul.rename(columns={CCTV_Seoul.columns[0]: '구별'}, inplace=True)
    (2) inplace=True를 해야 업데이트가 된다. 디폴트는 False다.

  4. 엑셀 데이터 읽기
    (1) 판다스는 병합 기능이 없어서 데이터가 복잡하게 읽힌다.
    (2) header=2는 필요 없는 2줄을 날린다.
    (3) usecols='B, D, G'는 필요한 컬럼만 지정한다.

3 실습 - 서울시 CCTV 현황 분석 데이터 읽기

  1. CCTV_Seoul.tail( )
    (1) 끝에 있는 5개의 데이터를 보여준다.

  2. 한글이 깨질 때
    (1) CCTV_Seoul = pd.read_csv("../data/01. Seoul_CCTV.csv")의 파일 경로 뒤에 , encoding="utf-8"을 써준다.
    (2) 여기서 ../data의 의미는 data 폴더의 상위로 가서 파일을 읽어오라는 의미다.
    (3) . 하나는 현재 폴더라는 의미다.

  3. 판다스 엑셀 명령어
    (1) pandas read_excel documentation을 검색하면 볼 수 있다. 영문이다.

4 이론 - Pandas 기초

  1. 판다스
    (1) 기본 데이터형은 Series다.

  2. date_range
    (1) 날짜(시간)을 이용할 수 있다.

  3. .info
    (1) 데이터 프레임의 기본 정보 확인

CCTV 2

5 실습 - 서울시 CCTV 현황 분석 Pandas 기초 - Series

  1. Pandas 기초
    (1) esc - m을 하면 마크다운 편집창으로 변경이 된다.
    (2) #으로 제목 크기 조절한다.
    (3) 필기를 다하고 esc - shift+enter를 하면 된다.
    (4) esc - a를 하면 바로 위에 창이 생긴다.

  2. Series
    (1) index와 value로 이루어져 있다.
    (2) 한 가지 데이터 타입만 가질 수 있다.

6 실습 - 서울시 CCTV 현황 분석 Pandas 기초 - DataFrame

  1. index, columns, values는 변수
    (1) ( )를 붙이지 않는다.
    (2) head( ), tail( )은 메서드라서 붙인다.

  2. df.info( )
    (1) 데이터 프레임의 기본 정보 확인

  3. df.describe( )
    (1) 데이터 프레임의 기술정보 통계 확인

  4. df.sort_values( )
    특정 컬럼(열)을 기준으로 데이터를 정렬

  5. 컬럼이 숫자일 경우
    (1) df.4처럼 불러올 수 없지만 문자는 가능하다.

  6. 두 개 이상 컬럼 선택
    (1) df[['A', 'B']]

  7. offset index
    (1) [n:m] : n부터 m-1 까지
    (2) 인덱스나 컬럼의 이름으로 slice 하는 경우는 끝을 포함

  8. loc
    (1) index 이름으로 특정 행, 열을 선택
    (2) :는 인덱스 전체

  9. iloc
    (1) 컴퓨터가 인식하는 인덱스 값으로 선택

  10. condition
    (1) A 컬럼에서 0보다 큰 숫자(양수)만 선택
    df['A'] > 0

  11. 컬럼 추가
    (1) 기존 컬럼이 없으면 추가
    (2) 기존 컬럼이 있으면 수정

  12. isin( )
    (1) 특정 요소가 있는지 확인

13.특정 컬럼 제거
(1) del
(2) drop
(3) del df'E' df.drop('D', axis=1)

profile
print(‘안녕하세요! 반갑습니다!’)

0개의 댓글