앎을 경계하기

Contents 356

[가짜연구소 3기] 데이터 엔지니어링 34 - More complex SQL queries

주제 여러 함수를 사용하여 복합적으로 sql 쿼리를 작성하는 법에 대해 배웠다. DISTINCT 사용하기 pandas에서 고유값을 얻기 위해 unique를 사용하였다. SQL에서는 DISTINCT를 사용하여 고유한 값을 추출한다. SELECT DISTINCT 컬럼명 FROM 테이블명; 중복값 제거를 위해서는 다음과 같이 쿼리할 수 있다. SELECT DISTINCT * FROM 테이블명; 집계 함수 직접적으로 데이터베이스에 쿼리하여 집계함수를 사용할 수 있다. SUM, AVG, MIN, MAX 단일 컬럼의 집계 수행 SELECT AVG(컬럼명) FROM 테이블명; COUNT 쿼리 조건에 맞는 행 개수를 가져올 수 있다. #전체 행의 수 SELECT COUNT(*) FROM 테이블명; #컬럼의 고유 값 수..

[가짜연구소 3기] 데이터 엔지니어링 33 - Refining imports with SQL queries

주제SQL 쿼리문을 작성하여 데이터를 가져오는 방법에 대해 배웠다.열 선택하기SELECT 열 이름 FROM 테이블명; 으로 특정 컬럼을 지정해서 로드할 수 있다.pandas의 read_excel, read_csv에서 usecols와 비슷하다.SELECT date, tavg FROM weather;WHERE 절 사용하기Where 절을 사용해서 가지고 오고자 하는 데이터를 필터링해서 가져올 수 있다.숫자의 경우 =, >, ≥, 32;위 쿼리는 32보다 큰 tmax값을 가진 레코드를 전부 가져온다.문자열의 경우 =을 사용해서 문자열 일치 비교한다. 문자열은 대소문자를 구분한다.SELECT * FROM hpd311calls WHERE borough = 'BROOKLYN';SQL과 pandasimport pand..

[가짜연구소 3기] 데이터엔지니어링 32 - Introduction to databases

주제 관계형데이터베이스 파이프라인을 구축하는 법에 대해 배웠다. 관계형 데이터베이스 엔티티에 대한 데이터를 테이블로 구성한다. 각 레코드, 행은 엔티티의 인스턴스이다. 각 컬럼은 속성에 대한 정보이다. 테이블은 고유 키를 통해 테이블들을 연결시킬 수 있다. 데이터의 퀄리티 조정과 더 많은 데이터를 처리하고 동시 사용자를 지원한다. 각 컬럼에 구체적은 데이터 타입을 적용한다. SQL을 사용해 데이터베이스와 상호작용한다. 데이터베이스 연결 데이터베이스를 연결하는 방법을 만든다. SQL 또는 Pandas로 쿼리한다. 이 작업을 위해 SQLAlchemy 라이브러리를 사용한다. create_engine() 을 사용하면 데이터베이스 연결을 다룰 수 있다. 연결하기 위해서는 DB의 URL 주소가 필요하다. URL은 ..

[가짜연구소 3기] 데이터 엔지니어링 31 - Modifying imports: parsing dates

주제 Date and Time Data 일자와 시간은 파이썬 특수 유형인 datetime으로 저장한다는 것이다. Datetime은 여러 문자열로 표현될 수 있다. 날짜 시간이 문자열로 형식화되는 방법을 설명하는데 사용되는 공통 코드 세트이다. 판다스에서는 기본으로 datetime 데이터를 object로 읽는다. datetime 열을 지정하기 위해 parse_dates를 사용해서 datetime을 설정할 수 있다. parse_dates 컬럼 이름이나 숫자 목록을 전달한다. 2차원 배열도 가능하다. 각 키는 새 컬럼이름, 각 값은 구문 분석할 컬럼 목록으로 딕셔너리를 구성해서 사용할 수 있다. 위 데이터로 date를 다뤄보자. 표준 형식 date_cols = ['Part1StartTime', 'Part1En..

[가짜연구소 3기] 데이터 엔지니어링 30 - Modifying imports : true/false data

주제 열을 부울로 형 변환하고 사용자 정의 True/False 값 설정하는 방법, 부울 변환 시 고려사항에 대해서 배웠다. 이전까지는 주로 문자열, 숫자형 데이터를 다뤘다. 이번에는 부울 타입의 데이터에 대해서 다룬다. 부울 데이터 True/False 데이터 필터링 작업에 편리함 판다스에서 부울 데이터를 어떻게 해석할까? 위 엑셀파일을 판다스에서 읽고 타입을 확인하면 다음과 같다. 부울 타입으로 해석하지 않는다. 숫자로 해석하는 경우 True = 1, False = 0으로 매핑된다. read_excel 에 dtype 인수로 부울 컬럼을 지정하는 dictionary를 전달할 수 있다. 그러나 이렇게 타입을 설정하면 발생하는 문제가 있다. 판다스에서 0과 1이 False, True임은 인식하지만 애매한 것들..

[가짜연구소 3기] 데이터 엔지니어링 29 - Getting data from multiple worksheets

주제 다수의 스프레드 시트를 선택해 데이터프레임으로 만들고, 합치는 과정에 대해 배웠다. 다수의 시트 선택하기 read_excel()은 보통 엑셀파일의 첫 시트만 가져온다. sheet_name 인수(인덱스 또는 시트 이름)를 설정해서 특정 시트를 가져올 수 있다. 여러 개의 시트를 설정하면 여러 시트를 가져올 수 있다. read_excel()에 설정한 파라미터들이 가져오는 시트들에 모두 적용된다. 위처럼 두 개의 시트가 있다. 2017 시트를 가지고 오려면 다음과 같이 수행하면 된다. #숫자 인덱스로 표시하는 경우 0부터 시작 survey_data_sheet2 = pd.read_excel('fcc_survey.xlsx', sheet_name=1) survey_data_2017 = pd.read_excel..

[가짜연구소 3기] 데이터 엔지니어링 28 - Introduction to spreadsheets

주제 엑셀파일의 데이터를 판다스의 데이터프레임으로 읽는 법에 대해 배웠다. 스프레드시트 엑셀 파일로도 잘 알려져 있음. 데이터 프레임과 마찬가지로 행,열로 구성된 데이터 셀과 테이블 정보를 구성한다. 플랫파일과 다르게 형식이나 공식 적용이 가능하다. 스프레드시트는 통합 문서에 여러 개가 있을 수 있다. 스프레드시트 로드 판다스에서 read_excel() 을 사용해서 스프레드시트의 데이터를 로드할 수 있다. 행과 열 선택해서 읽기 스프레드 시트에 생각하는 대로 곧바로 깔끔하게 데이터가 들어있지 않을 수 있다. 메타 데이터 같은 데이터가 헤더에 포함되어 있을 수 있다. read_excel()은 read_csv()와 유사하지만 다른 점들이 있다. nrows : 읽을 행의 수 제한 skiprows : 건너 뛸 ..

[가짜연구소 3기] 데이터 엔지니어링 27 - Handling errors and missing data

주제 플랫 파일을 판다스로 읽을 때 발생하는 흔한 문제들과 해결 방법에 대해 배웠다. Flat File 사용 시, 흔한 문제들 분석에 방해되는 잘못된 열 데이터 타입 결측값 판다스에서 읽을 수 없는 값 데이터 타입 판다스에서는 자동적으로 열의 데이터 타입을 결정한다. 위 예시에서 우편번호(ZIpcode)를 정수로 해석했다는 것을 알 수 있다. 그러나 우편번호는 '0'이라는 값을 다뤄야할 수도 있다. 그리고 수량이 아니기 때문에 문자열로 모델링된다. dtype을 사용하여 데이터 유형을 직접 설정할 수 있다. {컬럼 이름: 데이터 타입} 인 딕셔너리 형태로 인수를 설정한다. tax_data = pd.read_csv('us_tax_data_2016.csv', dtype={'zipcode':str}) 결측값 다..

[가짜연구소 3기] 데이터 엔지니어링 26 - Modifying flat file imports

주제 데이터의 양을 제한해서 읽어오는 방법에 대해 배웠다. 컬럼 이름을 설정하는 방법에 대해 배웠다. 앞 시간에 플랫 파일을 읽어 데이터프레임으로 로드하는 방법을 배웠다. 플랫 파일을 읽을 때, 전부가 아니라 일부만 읽어서 사용해야하는 경우도 있을 것이다. 오늘은 로드할 데이터의 양을 제한하는 방법에 대해 배운다. 예시 a.csv파일에 저장된 데이터가 180000개의 행과 200개의 열로 이뤄져있다. 만약 이 데이터를 전부 읽을 때 컴퓨팅 자원이 넉넉하다면 쉽게 처리할 수 있겠지만, 필요한 컴퓨터 자원이 부족한 경우 작업을 정상적으로 진행할 수 없게된다. 컬럼 제한하기 usecols 사용하기 가져올 열 이름 또는 열 번호를 사용할 수 있다. col_names = ['STATEFIPS', 'STATE', ..

[가짜연구소 3기] 데이터 엔지니어링 25 - Introduction to Flat Files

주제 판다스의 기본 개념과 플랫파일을 읽어 데이터프레임으로 로드하는 것을 배웠다. Pandas판다스를 사용하면 데이터를 쉽게 로드, 조작할 수 있고 분석과 시각화가 가능하다.DataFrames판다스는 데이터프레임 중심이다.데이터프레임은 행과 열로 구성된 2차원의 데이터 구조이다.행은 인덱스이고 열은 각 레이블이 지정되어 있다.수동으로 데이터프레임을 만들 수 있지만, 여러 포맷의 파일을 읽어서 데이터프레임으로 로드하는 것도 가능하다.Flat Files간단하고 구성이 쉽다.서식이 없는 일반적인 텍스트로 저장된다.선택한 구분 기호로 열 값을 구분한다.대표적인 예로 CSV 파일은 콤마(,)로 구분된 파일이다.import pandas as pd tax_data = pd.read_csv("CSV 파일 경로"sep ..