반응형

Python 7

Python 파싱(Parsing)

파싱(Parsing)이란? '파싱'이란 문자의 구조를 분석해서 원하는 정보를 얻어내는 걸 말합니다. 복잡한 HTML 코드에서 정보를 뽑아내는 것도 파싱의 일종이죠. 아래의 HTML 코드에서 '커피', '녹차', '우유'라는 텍스트 데이터를 추출한다고 해 봅시다. HTML 연습! 이것은 첫 번째 문단입니다. 이것은 두 번째 문단입니다! 커피 녹차 우유 물론 짧은 HTML 코드에서는 눈으로 확인하고 옮겨적을 수 있겠지만, 우리가 원하는 데이터는 훨씬 클테니 수작업을 할 수 없겠죠. 이럴 때 파싱이 필요합니다. Beautiful Soup 파이썬에서는 Beautiful Soup이라는 툴로 HTML을 파싱합니다. 파싱할 HTML 코드를 변수 html_code에 넣어줍시다. (파이썬에서 여러 줄의 텍스트를 """와..

IT/Python 2022.11.09

Python 분석 데이터 다운로드 받기

데이터를 구하는 가장 쉬운 방법은, 이미 누군가 만들어둔 데이터를 사용하는 것입니다. 대표적으로, 국가 기관에서는 공익 목적으로 여러 데이터를 공개합니다. 그 외에도 데이터를 검색하는 사이트나, 데이터를 공유하는 사이트들이 있죠. 국내 사이트 서울열린데이터광장 https://data.seoul.go.kr/ 공공데이터포털 https://www.data.go.kr e-나라지표 http://www.index.go.kr/ 국가통계포털 http://kosis.kr 서울특별시 빅데이터 캠퍼스 https://bigdata.seoul.go.kr/ 통계청 http://kostat.go.kr/ 각 사이트를 보면, 여러 분야의 데이터를 다운로드 받을 수 있습니다. 혹은 원하는 데이터를 신청하면 제공해주기도 합니다. 그 외에..

IT/Python 2022.11.08

Python - 데이터 클리닝 (drop_duplicates)

DataFrame.drop_duplicates DataFrame의 drop_duplicates는 중복된 값을 가진 행을 제거하고 unique한 행만 남도록 해주는 기능을 제공합니다. drop_duplicates에 들어갈 수 인자 중 자주 쓰이는 것들은 같습니다. 1. subsetsubset에 명시한 컬럼들 기준으로 중복제거가 진행됩니다. 2. keepkeep='first' -> 중복된 컬럼 중 가장 위쪽의 행을 남기고 그 아래의 행들은 삭제 keep='last' -> 중복된 컬럼 중 가장 아래쪽의 행을 남기고 그 아래의 행들은 삭제 default값은 'first'입니다. 3. inplaceinplace=True -> 원본 DataFrame에 대해 중복 행 제거 inplace=False -> 원본 Data..

IT/Python 2022.11.08

Python - 데이터 클리닝 (empty)

pandas의 empty는 Series 또는 DataFrame이 비어있으면 True를 return합니다. 반대로 비어있지 않으면 False를 return합니다. import pandas as pd dict_test = { } df_test = pd.DataFrame(dict_test) print(df_test) print(df_test.empty) -- Result Empty DataFrame Columns: [] Index: [] True 위 예시는 비어있는 DataFrame인 df_test를 만들고 df_test의 empty를 적용한 결과입니다. DataFrame에 column도 row도 아무것도 없으니 비어있죠. 따라서 True가 return됩니다. import pandas as pd dict_te..

IT/Python 2022.11.08

Python - 데이터 클리닝 (duplicated)

Python pandas에는 duplicated라는 method가 있습니다. duplicated method는 DataFrame에 있는 행들 중 중복된 값을 가진 행이 뭔지 True, False의 형태로 알려줍니다. Syntax DataFrame.duplicated(subset=list/none, keep='first'/'last'/False) subset subset에는 중복값 테스트를 할 기준 column을 적습니다. 만약 subset을 적지 않으면 모든 컬럼의 데이터를 기준으로 중복값을 가진 row를 체크합니다. keep='first' --> 중복된 row 중에서 가장 위에 있는 row를 제외하고 나머지 row에 중복 flag(True)를 달아줍니다. keep='last' --> 중복된 row 중에..

IT/Python 2022.11.08

Python - 데이터 클리닝 (isna)

Pandas의 isna method는 어떤 값이 NaN값인지 아닌지를 체크합니다. NaN값이라면 True, NaN값이 아니라면 False를 return합니다. 아래 예씨를 보시죠. import numpy as np import pandas as pd print(pd.isna(np.nan)) -- Result True isna method가 NaN값을 받으니 True값을 return하는 것을 볼 수 있습니다. 마치 아래 글에 있는 numpy의 isnan과 비슷한 기능을 하죠. https://cosmosproject.tistory.com/367 Python numpy : isnan (NaN값 다루기, None값 다루기, null값 다루기, NaN값 테스트, None값 테스트, nvl, coalesce 어느 ..

IT/Python 2022.11.08

Python Pandas DataFrame 인덱싱

DataFrame 인덱싱을 할때 이름이나 위치로 할수 있다 우선적으로는 기본형태를 알고 참고성으로 단축형태를 이해하면 좋을듯 합니다 이름으로 인덱싱하기 기본 형태 단축 형태 하나의 row 이름 df.loc["row4"] row 이름의 리스트 df.loc[["row4", "row5", "row3"]] row 이름의 리스트 슬라이싱 df.loc["row2":"row5"] df["row2":"row5"] 하나의 column 이름 df.loc[:, "col1"] df["col1"] column 이름의 리스트 df.loc[:, ["col4", "col6", "col3"]] df[["col4", "col6", "col3"]] column 이름의 리스트 슬라이싱 df.loc[:, "col2":"col5"] 위치로 인..

IT/Python 2022.11.04
반응형