문서의 제목 나눔고딕B, 54pt

Similar documents
문서의 제목 나눔고딕B, 54pt

PowerPoint 프레젠테이션

데이터 시각화


MySQL-.. 1

Microsoft PowerPoint Python-DB

Lab-Buildamatrix Copyright 2018 document created by Introduction PDF 파일다운로드 Machin Learning의두번째랩은 Pandas와 Numpy를활용하여 Rating M

2) 활동하기 활동개요 활동과정 [ 예제 10-1]main.xml 1 <LinearLayout xmlns:android=" 2 xmlns:tools="

설계란 무엇인가?

확률 및 분포

untitled

src.xls

기술통계

Lab - Gradient descent Copyright 2018 by Introduction [PDF 파일다운로드 ]() 이번랩은우리가강의를통해들은 Gradient descent 을활용하여 LinearRegression

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

PowerPoint Presentation

14장 파일

PowerPoint Presentation

<4D F736F F F696E74202D2034C5D8BDBAC6AEC6C4C0CFC0D4C3E2B7C2312E505054>

쉽게 풀어쓴 C 프로그래밍

01 EDITOR S PICK: 068_ _069

chap 5: Trees

PowerPoint Template

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

윈도우즈프로그래밍(1)

Microsoft PowerPoint - ch07 - 포인터 pm0415

dist=dat[:,2] # 기초통계량구하기 len(speed) # 데이터의개수 np.mean(speed) # 평균 np.var(speed) # 분산 np.std(speed) # 표준편차 np.max(speed) # 최대값 np.min(speed) # 최소값 np.me

쉽게 풀어쓴 C 프로그래밍

Ⅰ Ⅱ ? ? Ⅲ Ⅳ

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

쉽게 풀어쓴 C 프로그래밍

<C1A4C3A5B8DEB8F05FC1A C8A35FB0F8B0F8B5A5C0CCC5CD20B0B3B9E6B0FA20B0ADBFF8B5B52E687770>

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

adfasdfasfdasfasfadf

테이블 데이터 처리용 command line tool들


학습목차 2.1 다차원배열이란 차원배열의주소와값의참조

Smart Power Scope Release Informations.pages

Microsoft PowerPoint 웹 연동 기술.pptx

<443A5C4C C4B48555C B3E25C32C7D0B1E25CBCB3B0E8C7C1B7CEC1A7C6AE425CBED0C3E0C7C1B7CEB1D7B7A55C D616E2E637070>

다운로드된 lab_normal_equation.zip 파일을작업폴더로이동한후압축해제후작업하시길바랍니다. 압축해제하면폴더가 linux_mac 과 windows 로나눠져있습니다. 자신의 OS에맞는폴더로이동해서코드를수정해주시기바랍니다. linear_model.py 코드 구조

歯처리.PDF

src.xls

UI TASK & KEY EVENT

Microsoft Word _mentor_conf_output5.docx

1

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

Microsoft PowerPoint - System Programming Lab Week1.ppt [호환 모드]

Microsoft PowerPoint - Java7.pptx

Microsoft PowerPoint - Zebra ZPL 한글판 명령어 메뉴얼.ppt

쉽게 풀어쓴 C 프로그래밊

MATLAB for C/C++ Programmers

歯9장.PDF


Microsoft PowerPoint - a10.ppt [호환 모드]

EndNote X2 초급 분당차병원도서실사서최근영 ( )

Multi-pass Sieve를 이용한 한국어 상호참조해결 반-자동 태깅 도구

18강.hwp

PowerPoint 프레젠테이션

Algorithm_Trading_Simple

8 장데이터베이스 8.1 기본개념 - 데이터베이스 : 데이터를조직적으로구조화한집합 (cf. 엑셀파일 ) - 테이블 : 데이터의기록형식 (cf. 엑셀시트의첫줄 ) - 필드 : 같은종류의데이터 (cf. 엑셀시트의각칸 ) - 레코드 : 데이터내용 (cf. 엑셀시트의한줄 )

문서의 제목 나눔고딕B, 54pt

MATLAB for C/C++ Programmers

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - chap11.ppt [호환 모드]

12-file.key

Orcad Capture 9.x

11장 포인터

Lab-Numpyinanutshell Copyright 2018 document created by Introduction PDF 파일다운로드 오래기다리셨습니다. 드디어 Machin Learning 강의첫번째 Lab Assi

API 매뉴얼

Monthly User Guide from JMP Korea 제 13 호 (2018 년 8 월 ) Excel 과 JMP, Excel 보다 JMP * 본 Guide 는매월세번째수요일에발행됩니다 (2018 년 7 월호부터는 JMP 14 Version 기준입니다 ) ** M

03_queue

Microsoft PowerPoint Python-Function.pptx

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - J1C_User_Manual_V5.2.pptx

C 언어 프로그래밊 과제 풀이

<4D F736F F F696E74202D20C4C4C8B031B1DEC7CAB1E22DC0FCC3BCB1B3C0E72D D3133B3E232C8B8B1EEC1F6202D20BAB9BBE7BABB2E707074>

Microsoft PowerPoint - 제11장 포인터(강의)

학습목표 텍스트파일을다룰수있다. 스트림읽기, 쓰기를안다. 2

Frama-C/JESSIS 사용법 소개

빅데이터분산컴퓨팅-5-수정

성도

제 목

Microsoft PowerPoint - 제11장 포인터

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

Microsoft PowerPoint - chap-11.pptx

14장 파일

Columns 8 through while expression {commands} 예제 1.2 (While 반복문의이용 ) >> num=0

화판_미용성형시술 정보집.0305

Row 0x0: UniKS-US-H 0

424

420

392

untitled

PowerPoint 프레젠테이션

수식모드수식의표현법 수학식표현 조남운 조남운 수학식표현

var answer = confirm(" 확인이나취소를누르세요."); // 확인창은사용자의의사를묻는데사용합니다. if(answer == true){ document.write(" 확인을눌렀습니다."); else { document.write(" 취소를눌렀습니다.");

untitled

Transcription:

Gachon CS50 File Handling Character Separate Values 가천대학교 산업경영공학과 최성철교수

CSV

CSV 파일이란 ㆍ필드를쉼표 (,) 로구분한텍스트파일 ㆍ엑셀양식의데이터를프로그램에상관없이쓰기위한데이터형식이라고생각하면쉬움 ㆍ콤마뿐만아니라탭 (TSV), 빈칸 (SSV) 등으로구분해서만들기도함, 이런것들을통칭하여 character-separated values (CSV) 부름 ㆍ엑셀에서는 다름이름저장 기능으로사용가능

엑셀로 CSV 파일만들기 ㆍ파일다운로드 from GitHub https://github.com/teamlab/cs50_example_code/blob/master/16_csv/data_population.xls ㆍ파일열기 ㆍ파일 다른이름으로저장 CSV( 쉼표로분리 ) 선택후 파일명입력 ㆍ엑셀종료후 Notepad 로파일열어보기

엑셀로 CSV 파일만들기 데이터가, 로나눠져있음

CSV 파일읽기 / 쓰기 ㆍ Text 파일형태로데이터처리예제 ㆍ예제데이터 : customer.csv (https://raw.githubusercontent.com/teamlab/cs50_example_code/master/16_csv/customers.csv) ㆍ일반적 textfile 을처리하듯파일을읽어온후, 한줄한줄씩데이터를처리함

예제데이터형식 해당데이터는고객의 FullName, 성, 이름, 전화번호, 국가등기록, 로분리

CSV 파일읽기 line_counter = 0 # 파일의총줄수를세는변수 data_header = [] # data 의필드값을저장하는 list customer_list = [] # cutomer 개별 List 를저장하는 List read_csv.py Vim Editor with open ("customers.csv") as customer_data: # customer.csv 파일을 customer_data 객체에저장 while 1: data = customer_data.readline() # customer.csv에한줄씩 data 변수에저장 if not data: break # 데이터가없을때, Loop 종료 if line_counter==0: # 첫번째데이터는데이터의필드 data_header = data.split(",") # 데이터의필드는 data_header List에저장, 데이터저장시, 로분리 else: customer_list.append(data.split(",")) # 일반데이터는 customer_list 객체에저장, 데이터저장시, 로분리 line_counter+=1 print ("Header :\t", data_header) # 데이터필드값출력 for i in range(0,10): # 데이터출력 ( 샘플 10개만 ) print ("Data",i,":\t\t",customer_list[i]) print (len(customer_list)) # 전체데이터크기출력

CSV 파일쓰기 line_counter = 0 data_header = [] customer_usa_only_list = [] write_csv.py Vim Editor with open ("customers.csv", "rb") as customer_data: while 1: data = customer_data.readline().decode('utf-8') if not data: break if line_counter==0: data_header = data.split(",") else: customer = data.split(",") if customer[10].upper() == "USA": #customer 데이터의 offset 10번째값 customer_usa_only_list.append(customer) # 즉 country 필드가 USA 것만 line_counter+=1 #sutomer_usa_only_list에저장 print ("Header :\t", data_header) for i in range(0,10): print ("Data :\t\t",customer_usa_only_list[i]) print (len(customer_usa_only_list)) with open ("customers_usa_only.csv", "w") as customer_usa_only_csv: for customer in customer_usa_only_list: customer_usa_only_csv.write(",".join(customer)) #cutomer_usa_only_list 객체에있는데이터를 customers_usa_only.csv 파일에쓰기

CSV 객체사용하여 CSV 처리 ㆍ Text 파일형태로데이터처리시문장내에들어가있는, 등에대해전처리과정이필요 ㆍ파이썬에서는간단히 CSV 파일을처리하기위해 csv 객체를제공함 ㆍ예제데이터 : korea_floating_population_data.csv wget Bash shell https://raw.githubusercontent.com/teamlab/cs50_example_code/master/16 _csv/korea_floating_population.csv ㆍ예제데이터는국내주요상권의유동인구현황정보 ㆍ한글로되어있어한글처리가필요

예제데이터형식 ㆍ시간대 / 조사일자 / 행정구역 / 날씨등을기준으로연령별 / 성별유동인가해당지역에몇명인가표시

CSV 객체활용 #-*- coding: utf-8 -*- import csv seoung_nam_data = [] header = [] rownum = 0 all_data = [] use_csv_object.py Vim Editor with open("korea_floating_population.csv","r", encoding='utf8') as p_file: csv_data = csv.reader(p_file) #csv 객체를이용해서 csv_data 읽기 for row in csv_data: # 읽어온데이터를한줄씩처리 if rownum == 0: header = row # 첫번째줄은데이터필드로따로저장 location = row[7] # 행정구역 필드데이터추출 all_data.append(row) if location.find(u" 성남시 ")!= -1: seoung_nam_data.append(row) # 행정구역 데이터에성남시가들어가있으면 seoung_nam_data List에추가 rownum +=1 with open("seoung_nam_floating_population_data.csv","w", encoding='utf8') as s_p_file: writer = csv.writer(s_p_file, delimiter='\t', quotechar="'", quoting=csv.quote_all) #csv.writer를사용해서 csv 파일만들기 # delimiter 필드구분자 quotechar는필드각데이터는묶는문자, quoting는묶는범위 writer.writerow(header) # 제목필드파일에쓰기 for row in seoung_nam_data: writer.writerow(row) #seoung_nam_data에있는정보 list에쓰기

CSV 객체사용결과 성남시데이터만추출

[ 추가 ] Pandas 를활용한데이터분석 ㆍ Pandas 는데이터분석을위한파이썬모듈 ㆍ고수준의자료구조와데이터분석도구를포함함 ㆍ쉽게생각하면파이썬으로엑셀의피봇테이블같은기능을사용할수있게지원함 ㆍ그냥엑셀쓰면안됨? 됨 ㆍ하지만지금은 BIG Data 시대. 데이터크기너무커지면엑셀만으로처리하기가매우어려움

[ 추가 ] Pandas 를활용한데이터분석 ㆍ문제 : 성남시주요지역중맑은날과비올때 10 대가가장붐비는곳은? ㆍ예제데이터를 pandas 를사용하여분석후 그래프출력해보기연습

Pandas 활용 #-*- coding: utf-8 -*- import pandas as pd import matplotlib.pyplot as plt import matplotlib.font_manager as font_manager pandas_example.py Vim Editor # pandas 의 read_csv 함수로파일데이터읽어오기, 날씨와행정구역명을인덱스로지정 data_frame = pd.read_csv('seoung_nam_floating_population_data.csv', \ sep="\t", header=0, quotechar="'", encoding='utf-8',lineterminator="\n", \ index_col=[u' 날씨 ', u' 행정구역명 '], error_bad_lines=false) # 날씨와행정구역명을기준으로데이터를 group 화하고각필드별데이터의합을구함 group_data = data_frame.groupby(level=[u' 날씨 ',u' 행정구역명 ']).sum() # 날씨인덱스가 비 인경우의 남자 10 대 필드의데이터를추출하여 horizontal bar chart 로출력 ax = group_data.ix[u' 비 '][u' 남자 10 대 '].plot(kind='barh') # 한글출력을위해 chart 내한글폰트지정 axis = ax.yaxis font = font_manager.fontproperties(fname='c:\\windows\\fonts\\ngulim.ttf') for text in axis.get_ticklabels(): text.set_font_properties(font) # chart 화면에띄우기 plt.show()

Pandas 결과 비오는날은상대원 2 동 맑은날은야탑 1 동