전체 글 39

[1장] 데이터 모델링의 이해 2절

엔터티(Entity) 업무에서 관리해야 하는 데이터 집합(관심사), 저장되고 관리되어야 하는 데이터 개념, 사건, 장소 등의 명사 ▶ 엔터티의 특징 업무에서 쓰이는 정보 포함 (업무 프로세스에 이용) 유일한 식별자 존재 2개 이상의 인스턴스 포함 반드시 속성을 가짐 다른 엔터티와 1개 이상의 관계 존재 ▶ 엔터티의 분류 유형 vs. 무형 유형 엔터티(Tangible Entity) : 물리적인 형태 존재, 안정적, 지속적 (ex: 상품, 회원, 학생 ... ) 개념 엔터티(Conceptual Entity) : 물리적인 형태 없음, 개념적 (ex: 부서, 학과, 수업 ... ) 사건 엔터티(Event Entity) : 행위를 함으로써 발생, 빈번함, 통계자료로 이용 (ex: 주문, 이벤트 응모, 수강신청 ...

[1장] 데이터 모델링의 이해 1절

모델링(Modeling) 정의 : 현실 세계를 추상화/단순화/명확화하기 위해 일정한 표기법에 의해 표현하는 기법 조건 : 현실세계 반영, 단순화하여 표현, 관리하고자 하는 데이터를 모델로 설계 ▶ 모델링의 특징 추상화(Abstraction) : 일정한 형식으로 표현하는 것 단순화(Simplification) : 정해진 표기법으로 단순하고 쉽게 표현하는 것 명확화(Clarity) : 불분명함(애매모호함)을 제거하고 명확하게 해석할 수 있도록 기술하는 것 ▶ 모델링의 세 가지 관점 데이터 관점(What, Data) 비즈니스 프로세스에서 사용되는 데이터 구조 분석, 정적 분석 프로세스 관점(How, Process) 비즈니스 프로세스에서 수행하는 작업 시나리오 분석, 도메인 분석, 동적 분석 데이터와 프로세스의..

특정 폴더 안의 특정 파일(목록) 반복해서 가져오기

지난 1탄에서는 특정 폴더 안에 있는 파일(목록)만을 불러왔다. 1탄: https://danha23.tistory.com/7 특정 폴더 안의 특정 파일(목록) 가져오기 특정 폴더 안에있는 특정 파일(목록)을 가져오자. 1) pathlib, common을 이용하여 특정 폴더와 파일 경로 불러오기 경로를 불러온 후, 해당 폴더에 어떤 파일이 있는지 os.listdir()을 이용하여 확인하기 danha23.tistory.com 이번에는 특정 폴더 안에있는 특정 파일(목록)을 반복해서 불러오겠다. 먼저, 앞선 단계에서 특정 폴더 내에 있는 모든 파일(목록)들을 불러온 변수에서 파일들을 반복문(for)으로 불러온다. for f in file_names: print(f) 불러온 파일들 중에서 '.xlsx' 형식의 ..

특정 폴더 안의 파일(목록) 가져오기

특정 폴더 안에있는 특정 파일(목록)을 가져오자. 1) pathlib, common을 이용하여 특정 폴더와 파일 경로 불러오기 경로를 불러온 후, 해당 폴더에 어떤 파일이 있는지 os.listdir()을 이용하여 확인하기 from pathlib import Path import pandas as pd import os try: import common DATA = common.data except ImportError: DATA = Path().resolve() / 'data' file_names = os.listdir(DATA) file_names 2) os를 이용하여 현재 경로 불러오기 경로를 불러온 후, 해당 폴더에 어떤 파일이 있는지 os.listdir()을 이용하여 확인하기 ※ os.getcwd..

다중인덱스/컬럼(Multi Index/Column) 편

데이터 분석을 하다보면, 수많은 데이터를 이용하게 된다. 일반적으로 csv 혹은 text 파일을 이용하지만 간혹 excel, html, xml 등 다양한 데이터를 이용한다. 필자는 주로 csv 파일을 이용하는데, 최근에 excel 데이터를 활용한 경험이 있다. 해당 데이터는 다중인덱스와 컬럼으로 구성되었고, 필자는 이러한 데이터를 csv 파일 형식의 데이터로 변환하려고 한다. 먼저, 다중 인덱스와 컬럼으로 구성된 데이터프레임(DataFrame)을 생성하였다. 아래 보이는 데이터를 unstack(), stack(), reset_index() 등을 이용하여 필자가 원하는 형태로 데이터를 재구성 하겠다. ※ stack : 컬럼을 인덱스로 변환 (Series 형식으로 변환됨) ※ unstack : 인덱스를 컬럼..

데이터 입력 오류(인코딩 문제) 간단히 해결하기

1탄에서 데이터 입력 오류(인코딩 문제) 해결하기라는 글을 작성하였는데, 사실 엄청엄청 간단하게 해결할 수 있다. 1탄: https://danha23.tistory.com/4 데이터 입력 오류(인코딩 문제) 해결하기 데이터를 불러오고, 저장하다보면 각종 오류를 만나게 된다. (꼭.. 만난다) 그중에서도 단골 손님은 "인코딩 문제"이다. read.csv() 함수를 이용해 csv 파일을 불러오면서, encoding = "UTF-8" / "euc-kr" 로 danha23.tistory.com 간단하게 해결하는 방법은 readr 패키지를 이용하는 것이다. 기존 read.csv() 함수가 아닌, readr 패키지에 있는 read_csv() 함수를 이용하여 csv 파일을 불러온다. 기존 read.csv() 함수로 ..

데이터 입력 오류(인코딩 문제) 해결하기

데이터를 불러오고, 저장하다보면 각종 오류를 만나게 된다. (꼭.. 만난다) 그중에서도 단골 손님은 "인코딩 문제"이다. read.csv() 함수를 이용해 csv 파일을 불러오면서, encoding = "UTF-8" / "euc-kr" 로 설정하였다. 그럼에도 아래와 같은 오류가 계속 발생하면서 파일을 정상적으로 불러오지 못했다. 이러한 오류는 아래 코드를 통해 해결할 수 있었다. 그러나 .. 파일을 불러온 후에 인코딩을 재설정 하는 부분에서 또다시 Warning message가 발생하였다. 오류 메시지를 무시하고, 불러온 파일을 확인하였더니 한글이 전부 깨져있었다. Sys.getlocale() #인코딩정보 확인 Sys.setlocale("LC_ALL", "C") #초기설정으로 변경(C) data Sys..

웹 크롤링(Web Crawling)으로 데이터 수집하기(2)

R을 이용한 웹 크롤링 마지막 단계는 대전광역시 파일데이터 947건에 대한 관리부서를 추출하는 것이다. 앞 단계 : https://danha23.tistory.com/2 웹 크롤링(Web Crawling)으로 데이터 수집하기(1) R을 이용하여 웹 크롤링(Web Crawling)을 실시하여 원하는 데이터를 수집하겠다. 웹 크롤링을 위해 R에서는 주로 rvest 패키지를 이용한다. rvest는 html로 생성된 웹 사이트의 경우 해당 패키지로 스크 danha23.tistory.com 추출할 관리부서명의 위치를 확인하자. 관리부서명은 "tr-th(관리부서명)-td(실제관리부서명)"에 위치하고 있다. 여기서 필요한 것은 td에 있는 실제관리부서명이다. 앞에서 완성한 final 변수에서 2번째에 위치한 url을..

웹 크롤링(Web Crawling)으로 데이터 수집하기(1)

R을 이용하여 웹 크롤링(Web Crawling)을 실시하여 원하는 데이터를 수집하겠다. 웹 크롤링을 위해 R에서는 주로 rvest 패키지를 이용한다. rvest는 html로 생성된 웹 사이트의 경우 해당 패키지로 스크래핑이 가능하다. 먼저, R에서 rvest와 dplyr 패키지를 불러오겠다. library(rvest) library(dplyr) 필자가 진행할 웹 크롤링의 순서는 다음과 같다. 1. 어떤 데이터를 추출할 것인지 정한 후 해당 데이터에 대한 URL 추출 2. URL 안에 있는 내용 추출 필자는 공공데이터포털(https://www.data.go.kr/index.do)에서 "대전광역시"의 파일데이터 현황을 추출하려고 한다. 공공데이터 포털 국가에서 보유하고 있는 다양한 데이터를『공공데이터의 제..