1. crawling

1) openapi 미사용

   직접 website에 접속하여 crawling 사용 : urllib, requests, selenium, beautifulscup4 등등

 

2) openapi 사용

   - oauth (open authorization authentication) 

     각 site별로 인증방식이 다름 ( 공공데이터, google, naver, daum, ...)

   - oauth 사용

     oauth1.0a  (twitter,...)

     oauth2.0   (facebook,...)

 

2.   프로그램 설치

1) python 설치

   pip, conda등으로 추가 라이브러리들 설치

 

2) anaconda 설치 (약 100여개 이상 패키지들을 포함)

   pip 혹은 conda등으로 추가 라이브러리들 설치

 

   pip list                                               # installed list

   pip install   <라이브러리명>                   # pypi에서 get

   pip install   <라이브러리명>== 버전        # 특정버전을 설치

   pip uninstall  <라이브러리>                    # 삭제

   pip show    <라이브러리>

 

   모듈명 확인

   pydoc modules

 

   *  사용자 정의 모듈작성 및 사용

   - <모듈명>.py 파일을 작성

   - 현재 작업 디렉토리에 file 작성

     환경변수 PYTHONPATH에 해당 file의 directory를 지정

     [Python_Home]\lib에 file 저장

   - 모듈을 사용하고자 하는 코드에서 import   ( import <모듈명 )

   - 모듈안의 어트리뷰트(함수, 클래스,변수)를 사용 ( 모듈명.함수() )

     모듈안의 함수등을 알고 싶으면 => dir(모듈명)

     함수의 사용방법을 알고 싶으면 => help(함수명) 

 

   * 모듈의 우선순위

   - 현재 작업 디렉토리

   - 환경변수 PYTHONPATH에 지정된 디렉토리

   - 표준 라이브러리의 모듈 디렉토리 ( [Anaconda_Home]\lib )

   - 서드 파티 라이브러리의 모든 디렉토리 ( [Anaconda_Home]\lib\site_packages )

 

3. data 수집 (crawling)

 

4. data 가공

df = pd.DataFrame(~)

 

1)  column(열) 선택

df["컬럼명"]  == df.컬럼명

df[["컬럼명","컬럼명",....]]

 

* 에러 (범위지정은 에러)

df["컬럼명":"컬럼명"]

df[컬럼번호]

에러는 아니지만 결과 다름

df[컬럼번호:컬럼번호] ==> 컬럼번호가 아닌 행번호로 인식

 

2) row(행) 선택

df["행이름":"행이름"]

df[행번호:행번호]

 

* 에러

df["행이름"]

df[["행이름","행이름",...]]

df[행번호]

 

3) loc (location)

df.loc[ 행이름, 컬럼명 ]

df.loc[[행이름,행이름,...],[열이름,열이름,...]]

df.loc[ 행이름 : 행이름, 열이름:열이름 ] ==> 마지막 값을 포함

df.loc[ : , column ]  ==> 모든행의 특정컬럼

df.loc[ 행이름 ]  ==> 특정행의 모든컬럼

 

4) iloc (integer location)

df.iloc [ 행번호, 열번호 ]

df.iloc [[행번호, 행번호,...],[열번호,열번호...]] 

df.iloc[ 행번호:행번호, 열번호:열번호 ] ==> 마지막값 미포함

 

5) 삭제

del df["컬럼명"]

drop( ~~ )

 

6) 추가/수정

df["컬럼명"] = 새로운값 (컬럼이 없으면 신규추가, 컬럼이 있고 값이 없으면 insert, 있으면 update)

 

7) nan 처리

- 삭제 : dropna()

- data 값을 삽입 : fillna()

- nan 무시 : 각종함수의 옵션중 skipna=True 사용 (기본값)

  변경/삭제 함수의 옵션들 : skipna=True, inplace=False, axis=0

 

8) 데이터 합치기

  pd.merge(df1, df2, how="inner", on="공통컬럼")

 

9) pivot 

- unstack()    : 행 --> 열 피벗

- stack()       : 열 --> 행 피벗

- set_index()  : 인덱스 설정

- pivot ()

- pivot_table()  :  groupby + pivot

 

 

 

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

data cleaning  (0) 2019.11.06
nump 사용  (0) 2019.10.31
pandas 데이터 모델링  (0) 2019.08.25
pandas dataframe view  (0) 2018.11.05
pandas 기초  (0) 2017.08.07

+ Recent posts