[ 오늘의 수업 내용 요약 ]
- 데이터 읽기
- pandas로 CSV, 엑셀 파일 읽기
- python에서 R만큼의 강력한 데이터 핸들링 성능을 제공하는 모듈
- 단일 프로세스에서는 최대 효율
- 코딩 가능하고 응용 가능한 엑셀로 받아들여도 됨
- 누군가는 스테로이드를 맞은 엑셀이라고 표현함
- python에서 import pandas as pd 라고 사용
- 원하는 모듈이 설치되어 있으면 import 명령을 통해 사용하겠다고
선언
ex) import MODULE: MODULE
=> MODULE..function을 사용하겠다.
import MODULE as md
=> MODULE을 사용할건데, 앞으로는 md라는 이름으로 부르겠다.
=> md.functin을 사용하겠다.
from MODULE import function
=> MODULE에 포함된 function이라는 함수만 사용하겠다.
=> function만 사용하겠다.
3. pandas에서 엑셀 및 텍스트 파일 읽기
- 통상 csv는 띄어쓰기로 구분되니 그냥 read_csv 명령으로 읽기만
해도 된다.
- 긴 파일명을 끝까지 입력하지 말고 적당한 곳에 TAB키를 눌러보자
- 한글은 encoding 설정이 필수 (안그러면 글자가 깨진다.)
- 엑셀 설정
- 자료를 읽기 시작할 행(header)지정
- 읽어올 엑셀의 컬럼을 지정(useclos)
- pandas dataframe구조
- index
- column name
- column
- values
- 실습 서울시 CCTV 현황 분석 데이터 읽기
- 파일명.head() : 상위 5개 결과 보기
- 파일명.tail() : 하위 5개 결과 보기, 전체 데이터 개수 파악 용이
- inplace=True : 변경한 사항을 원본에 저장
- pandas 기초
- pandas는 통상 pd로 import한다.
- 수치해석적 함수가 많은 numpy는 통상 np로 import한다.
- pandas의 데이터형을 구성하는 기본은 Series이다.
- date_range(): 날짜(시간)을 이용할 수 있다.
- pandas에서 가장 많이 사용되는 데이터형은 Data Frame이다.
- index와 columns를 지정하면 된다.
- df.head(): 앞부분 5개 데이터 확인
- df.index: Data Frame의 index만 확인하고 싶을 때 사용
- df.columns: Data Frame의 컬럼만 확인하고 싶을 때 사용
- df.values: Data Frame의 value만 확인하고 싶을 때 사용
- df.info: DataFrame의 기본 정보 확인할 때 사용, 여기서는 각
컬럼의 크기와 데이터 형태를 확인하는 경우가 많다.
- df.describe(): Data Frame의 통계적 기본 정보를 확인할 때
사용
- df.sort_values: 데이터 정렬
- df[n:m] :n~m-1까지, 그러나 인덱스나 칼럼의 이름으로
slice하는 경우는 끝을 포함함
- df.loc: location의 약자, 행과 열을 지정할 수 있다.
이름으로도 사용가능하며 pandas의 보편적인 slice옵션이다.
- df.iloc: 번호로만 지정하여 접근할 수 있다.
- df[condition]과 같이 사용하는 것이 일반적이다.
- pandas의 버전에 따라 조금씩 허용되는 문법이 다르다.
- 인터넷에서 확보한 소스코드를 돌릴때는 pandas의 버전을
확인하는 것이 필요하다
- isin: 특정 요소가 있는지 확인
- del: 특정 컬럼 제거
- apply(): 함수를 적용
- 서울시 CCTV현황분석 pandas series
- DataFrame 실습
- df.head()와 df.tail()은 메서드이기 때문에 함수가 붙고, df.index, df.columns, df.values는 변수이기 때문에
함수가 붙지 않아도 선언되는 것이다.
- asceding=False 라는 값을 주면 내림차순으로 정렬된다.
- 오름차순은 sort_value()
- 두 개 이상 컬럼 선택: df[["A", "B"]]
- df.drop(["D"], axis=0), drop메서드는 axis를 꼭 같이
사용해야한다.
- #axis = 0 가로, axis = 1 세로
- 데이터 훑어보기
- CCTV 앞부분 데이터 확인
- 단순히 구별 CCTV 개수로는 한계가 있어 인구 현황과 함께
비교 해야한다.
- unique 조사
- 데이터가 많아지면 unique 조사를 통해 데이터를 초반 검증
해야한다.
- 외국인과 고령자 비율을 만들어둔다
- 데이터 행이 25개인데 딱 한줄로 의도하는 바를 이룬다.
- 컬럼 연산이 편하다는 것이 python의 장점
- 데이터 합치기
- merge를 이용한 데이터 병합
- pandas DataFrame 데이터끼리의 병합은 빈번히 발생한다.
- 병합후 데이터가 엉망이 되지 않도록 잘 익혀야 한다.
- key컬럼을 기준으로 병합
- how=“left”로 지정하면 left의 키값들이 모두 보존된다.
- how=“outer”(합집합)를 사용하면 left, right 데이터들을
모두 살릴 수 있다.
- how=“inner”은 교집합들만 가지고 간다고 이해하면 쉽다.
[ 수업과정 데이터 병합 순서 ]
1. pandas index 지정
2. 데이터를 정리하는 과정에서 index를 재지정할 때가 있다.
3. 여기서는 unique한 데이터인 구별로 index를 잡자
4. index를 재지정하는 명령은 set_index이다.
상관관계란 ?
: 두 변량 사이에 한쪽이 증가하면 다른쪽도 증가(또는 감소)하는
경향이 있을 때 이 두 변량 사이에는 상관관계가 있다고 한다.
단, 상관관계가 있다고 해서 두 변량이 인과관계인 것은 아니다.