SlideShare uma empresa Scribd logo
1 de 52
꿈꾸는 데이터 디자이너
Week3
OpenRefine
Chapter1
Getting started with OpenRefine
OpenRefine
1 Diving into OpenRefine
OpenRefine
OpenRefine
1. http://openrefine.org/download.html 1. http://openrefine.org/download.html
2. Mac kit 다운로드
3. dmg 파일 열고 OpenRefine 아이콘을
application 폴더로 드래그
4. 실행
2. ZIP 파일 다운받기
3. OpenRefine 실행
OpenRefine
OpenRefine은 Google Chrome에서만 실행 가능
Internet Explorer에서는 작동 X
OpenRefine
2.Introducing OpenRefine
OpenRefine
•방대한 데이터를 다루기에 효과적인 도구
•Free & OpenSource
•Desktop based
•Facet으로 데이터의 양상을 실시간 파악 가능
•다양한 input & output 데이터 포맷
•데이터 변형이 쉬움
•API를 통한 데이터 변형 가능
OpenRefine
Google Refine Spreadsheets Databases
1. Batch editing of rows and
columns possible 

2. Used for exploring and
transforming data. 

3. No Schema Required 

4. Data is always visible 

at each step of editing. 

5. More interactive and 

visual. 

1. Editing of one cell at a time. 

2. Used for entering data and
performing calculations,
functions. 

3. No Schema Required 

4. Data is always visible 

5. Visual is not impressive. 

1. Schema and programming 

language required for editing. 

2. Data is out of sight unless 

script is run to view it. 

비슷한 도구들과의 비교
OpenRefine
2.Creating & Setting a new project
새로운 프로젝트 만들기
OpenRefine
Facebook Group에서
sample_data.zip를
다운로드 받아주세요
OpenRefine
Create Project 파일선택 Next
•Creating & Setting a new project
1
2
3
실습예제 : RatesSweden.csv
OpenRefine
•데이터 정제 전에 필요한 세팅 단계
•CSV, TSV 설정과 문자 인코딩
•그리고 숫자로 인식하게끔 설정
•프로젝트명 설정
• Main setting
OpenRefine
• Check List
• Row의 갯수 확인
• 한 페이지에 몇 개의 row를 볼 것인지?
• previous / next 페이지 설정
• Open Project
• Export
OpenRefine
3 Correct bad formatting
잘못된 형식 바로잡기
•replace(orginal value, “replaceable text”, “new text”)
•To Number
•Numeric Facet
샘플예제 : RatesSweden.csv
OpenRefine
•replace(orginal value, “replaceable text”, “new text”)
•To Number
•Numeric Facet
OpenRefine
• rate의 경우 쉼표가 아닌 마침표로 구분하는게 보편적
• 그렇다면 어떻게 한번에 쉼표만 마침표로 바꿀 수 있을까?
• Edit cells - transform
•replace(value, “,” , “.”)
OpenRefine
•replace(value, “,”, “.”)
OpenRefine
•replace(orginal value, “replaceable text”, “new text”)
•To Number
•Numeric Facet
OpenRefine
•Edit Cells - Common Transforms - To number
•글씨가 검은색에서 녹색으로 변해야 숫자로 인식
OpenRefine
•replace(orginal value, “replaceable text”, “new text”)
•To Number
•Numeric Facet
OpenRefine
•Numeric Facet를 통해 데이터의 양상을 파악
•Scale 조정을 통해 원하는 구간 선택 및 sorting
OpenRefine
4 Correct Misspellings
잘못된 오류 바로잡기
•Trim
•To Uppercase or To lowercase
•Clustering
•Merge columns
샘플예제 : slategundeath.csv
OpenRefine
•Trim
•To Uppercase or To lowercase
•Clustering
•Merge columns
OpenRefine
•CSV파일로 전환해줘야 함
OpenRefine
•Facet - Text facet
•facet를 통해 city 데이터 파악
OpenRefine
•동일한 데이터가 다른 데이터로 인식
•끝에 띄어쓰기가 되어 있기 때문에
•동일한 데이터로 인식시켜 줘야 함 (trim)
OpenRefine
•city - Edit cells
•value.trim()
OpenRefine
•city - Edit cells - value.trim()
•Albuquerque를 비롯한 띄어쓰기가 적용된 값들이 정리 되었음
•Albuquerque의 갯수가 2,071개 -> 2,063로 바뀜
OpenRefine
•Trim
•To Uppercase or To lowercase
•Clustering
•Concatenation
OpenRefine
•미국 54개 주?
•미국의 워싱턴 D.C를 합쳐도 51개 되어야 함
•오하이오주가 대/소문자로 인해 다른 데이터로 인식
•그 밖에 다른 주도 대/소문자 구별이 되지 않은 데이터
OpenRefine
•Edit cells - Common transform - To uppercase
•대문자로 통일
1
2
3
OpenRefine
•51개 주로 수정
OpenRefine
•Trim
•To Uppercase or To lowercase
•Clustering
•Concatenation
OpenRefine
•Oklahoma City vs. Oklahoma city
•Cluster and edit 메뉴를 통해 클러스터링
•OpenRefine의 내장 알고리즘에 의해 분석
1
2
3
OpenRefine
•클러스터링을 통해 유사값들을 보여줌
•음성학, 유사형태 등의 분석방법으로 분석
•정확하게 데이터에 대한 파악 후, 병합해야만 한다
OpenRefine
•Trim
•To Uppercase or To lowercase
•Clustering
•Concatenation
OpenRefine
•미국 주별 총기사건수 비교
•9위 콜럼버스는 72건
•과연 그럴까?
OpenRefine
•동일한 도시 이름 Columbus의 해당 주는 OH, GA, IN등 다르다
•즉 전혀 맞지 않는 총기사건수가 카운팅 된 것으로 파악할 수 있음
•그렇다면, city + state를 병합하여 정확한 행정구역을 만들어줘야 함
OpenRefine
•City - Edit cells - transform
•value + “,” + cells[“state”].value
OpenRefine
•Text facet으로 다시 분석
•앞의 결과와 달리 정확한 분석
OpenRefine
5 Invalid values and duplicates
유효하지 않은 값과 중복값
샘플예제 : (re)titanic.csv
•데이터에 대한 이해로 접근하기
•오류데이터에 대한 이유 분석과 수정
OpenRefine
샘플예제 : (re)titanic.csv
•데이터에 대한 이해로 접근하기
•오류데이터에 대한 이유 분석과 수정
OpenRefine
•Titanic 탑승자 정보 데이터 오류는 없을까?
•우선 sex facet를 통한 데이터 현황 파악
OpenRefine
•남성과 여성이 아니면?
•기본적으로 데이터 오류라고 추정
OpenRefine
•여성의 이름 앞에 Miss
•여성으로 간주 할 수 있다
OpenRefine
•female이라고 수정
OpenRefine
샘플예제 : (re)titanic.csv
•데이터에 대한 이해로 접근하기
•오류데이터에 대한 이유 분석과 수정
OpenRefine
•Facet - Numeric facet
•Scale 범위 조정으로 오류 데이터 잡아내기
•490살 오류 데이터
•49살이라고 입력해야 할 것을 잘못 입력했다고 판단
•49살로 수정 후, number로 설정
OpenRefine
6 Exporting a project
프로젝트 내보내기
OpenRefine
•TSV
•CSV
•HTML table
•Excel
•MQL Write
OpenRefine
•Practice
•hokuk.xls 파일을 openrefine에서 활용해 보세요
•Concatenation, value.round(), trim() 등을 활용
OpenRefine

Mais conteúdo relacionado

Mais de neuroassociates

Mais de neuroassociates (20)

[Week20] D3.js_Mapping
[Week20] D3.js_Mapping[Week20] D3.js_Mapping
[Week20] D3.js_Mapping
 
[week17] D3.js_Tooltip
[week17] D3.js_Tooltip[week17] D3.js_Tooltip
[week17] D3.js_Tooltip
 
[week16] D3.js_Transition
[week16] D3.js_Transition[week16] D3.js_Transition
[week16] D3.js_Transition
 
[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자[week8] 데이터읽어주는남자
[week8] 데이터읽어주는남자
 
[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart[Week15] D3.js_Scatter_Chart
[Week15] D3.js_Scatter_Chart
 
[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)[Week14] D3.js_Scale and Axis (보충자료)
[Week14] D3.js_Scale and Axis (보충자료)
 
[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis[Week14] D3.js_Scale and Axis
[Week14] D3.js_Scale and Axis
 
[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart[Week13] D3.js_Bar Chart
[Week13] D3.js_Bar Chart
 
[Week12] D3.js_Basic2
[Week12] D3.js_Basic2[Week12] D3.js_Basic2
[Week12] D3.js_Basic2
 
[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자[week7] 데이터읽어주는남자
[week7] 데이터읽어주는남자
 
[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자[week6] 데이터읽어주는남자
[week6] 데이터읽어주는남자
 
[week12] D3.js_Basic
[week12] D3.js_Basic[week12] D3.js_Basic
[week12] D3.js_Basic
 
[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet[week11] R_ggmap, leaflet
[week11] R_ggmap, leaflet
 
[week9]R_statics
[week9]R_statics[week9]R_statics
[week9]R_statics
 
[Week8]R_ggplot2
[Week8]R_ggplot2[Week8]R_ggplot2
[Week8]R_ggplot2
 
[week7]R_Wrangling(2)
[week7]R_Wrangling(2)[week7]R_Wrangling(2)
[week7]R_Wrangling(2)
 
[week6]R_Wrangling
[week6]R_Wrangling[week6]R_Wrangling
[week6]R_Wrangling
 
[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자[Week5]데이터읽어주는남자
[Week5]데이터읽어주는남자
 
[Week5]R_scraping
[Week5]R_scraping[Week5]R_scraping
[Week5]R_scraping
 
[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자[Week4]데이터읽어주는남자
[Week4]데이터읽어주는남자
 

[Week3] clean & correct data with OpenRefine