1️⃣ 프로젝트와 데이터 분석 데이터 : 현실 세계의 일들을 관찰, 측정해서 얻은 값 정보 : 데이터를 처리해서 얻는 의미있는 값 데이터 분석 : 데이터를 활용하여 원하는 정보를 얻어내기 위한 일련의 과정 데이터 분석 프로젝트 문제정의 → 가설 설정 → 데이터 준비 → 데이터 분석 → 결과 정리 1) 문제 정의 현재 풀고자 하는 문제가 무엇인지를 명확히 정의 여행을 위해 가장 저렴한 가격으로 항공편을 예매하고자 한다. → 문제 정의 : 언제 비행기 표를 예매해야 할까? 2) 가설 설정 문제를 해결하기 위한 데이터 분석의 토대인 가설 설정 - 문제와의 관련성 고려해야 한다. - 정의한 문제 해결을 위한 가설 설정을 통해 필요한 데이터 셋과 데이터 분석 방향을 이해할 수 있다. 가설 1 - 비수기에 구매하면..
1️⃣ Matplotlib 소개 파이썬에서 데이터를 그래프나 차트로 시각화할 수 있는 라이브러리 그래프 그려보기 import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 2, 3, 4, 5] plt.plot(x, y) 그래프 제목, 라벨 작성하기 import matplotlib.pyplot as plt x = [1, 2, 3, 4, 5] y = [1, 2, 3, 4, 5] plt.plot(x, y) plt.title("First Plot") plt.xlabel("x") plt.ylabel("y") subplots - 보통 여러 개의 그래프를 그릴 때 사용한다. - figure와 axes를 직접 생성한다. import matplotlib.pyplot as ..
1️⃣ 조건으로 검색하기 데이터 프레임에서 각 컬럼마다 조건을 충족하는 값만 추출할 수 있다. Numpy의 마스킹 연산처럼 조건식을 직접 쓸 수도 있고, query() 함수를 이용하는 방법도 있다. 1) masking 연산 import numpy as np import pandas as pd df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"]) df["A"] < 0.5 2) 조건에 맞는 DataFrame row 추출 import numpy as np import pandas as pd df = pd.DataFrame(np.random.rand(5, 2), columns=["A", "B"]) # 마스킹 연산 df[(df["A"] < 0.5) & (df[..
1️⃣ Pandas 소개 구조화된 데이터를 효과적으로 처리하고 저장할 수 있는 Python 라이브러리 - Array 계산에 특화된 NumPy를 기반으로 구성되어 다양한 기능을 제공한다. - 특히, 행과 열을 가진 2차원 데이터와 엑셀 데이터에 대해서 데이터 프레임이라는 효율적인 자료구조를 제공하여 조금 더 익숙하고 강력한 데이터 연산을 제공한다. 2️⃣ Series 데이터 - numpy array가 보강된 형태로서 Data와 Index를 가지고 있다. import pandas as pd data = pd.Series([1, 2, 3, 4]) data - 인덱스를 가지고 있고 인덱스로 접근 가능하다. data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd']) ..
1️⃣ NumPy 소개 NumPy (Numerical Python) Python에서 대규모 다차원 배열을 다룰 수 있게 도와주는 라이브러리 - Numpy 라이브러리는 효율적인 데이터분석이 가능하도록 N차원의 배열 객체를 지원한다. - Numpy의 배열은 파이썬의 list()보다도 빠른 연산과 효율적인 메모리 사용이 가능하기 때문에 빅데이터 분석 등에 널리쓰인다. 왜 다차원 배열을 다루는가? - NumPy를 사용하는 이유 1) 데이터의 대부분은 숫자 배열로 볼 수 있다. ex) 흑백이미지는 해당 픽셀에 대한 명암을 나타내는 2차원 배열 데이터로 나타낼 수 있다. 사운드 데이터는 시간 대비 음악을 나타내는 1차원 배열로 볼 수 있다. 2) 파이썬 리스트에 비해, 빠른 연산을 지원하고 메모리를 효율적으로 사용..
1️⃣ CSV Comma Separated Value - 각 열이 특정한 의미를 가진다. # movies.csv # 국문 제목,영문 제목,개봉 연도 다크나이트,The Dark Knight,2008 겨울왕국,Frozen,2013 슈렉,Shrek,2001 슈퍼맨,Superman,1978 - 다른 구분 문자(delimiter)도 사용 가능하다. # movies.csv 다크나이트|The Dark Knight|2008 겨울왕국|Frozen|2013 슈렉|Shrek|2001 슈퍼맨|Superman|1978 - 데이터에 ,가 포함된 경우 큰따옴표 (" ") 를 이용하여 데이터를 감싼다 # movies.csv 먹고 기도하고 사랑하라,"Eat, Pray, Love",2010 "헬로우, 뉴욕","Hello, New Yor..
1️⃣ 딕셔너리 (Dictionary) 키와 값이 키:값 형태로 이루어진 데이터 구조 { key: value } - key : 값을 찾기 위해 넣어 주는 데이터 - value : 찾고자 하는 데이터 empty_dict = {} new_dict = { 'apple': '사과', 'book': '책', 'human': '사람', } dictionary = {} dictionary['apple'] = '사과' dictionary['book'] = '책' dictionary['human'] = '사람' - 딕서너리 vs 리스트 딕셔너리는 키와 값이 쌍을 이루기 때문에 키를 이용해 값을 빠르게 찾아낼 수 있습니다. 리스트는 모든 값를 확인해야 하므로, 데이터가 많을 경우 수십 배 까지도 성능 차이가 날 수 있다...
1️⃣ 파일 다루기 필요한 이론 1) 파일 열기 / 닫기 # 파일 열기 open() file = open('파일명') # 파일 읽기 read() content = file.read() # 파일 닫기 close() file.close() - 파일의 모드 설정하기 (옵션을 주지 않고 열면 '읽기 모드'로 파일이 열린다.) # 쓰기 (Write) 모드로 파일을 연다 with open('파일명', 'w') as file: file.write('Hello') 2) 파일 자동으로 닫기 with open('파일명') as file: content = file.read() # file.close() 필요 없음 3) 파일 읽기 file.read() - 줄 단위로 읽기 contents = [] with open('파일명'..
1️⃣ 리스트 순회하기 필요한 이론 1) for 반복문 2) 인덱싱 3) 문자열 인덱싱 ▶ 트윗을 정제하기 위해 리스트에 담긴 요소를 하나씩 가져오기 trump_tweets = [ 'Will be leaving Florida for Washington (D.C.) today at 4:00 P.M. Much work to be done, but it will be a great New Year!', 'Companies are giving big bonuses to their workers because of the Tax Cut Bill. Really great!', 'MAKE AMERICA GREAT AGAIN!' ] def date_tweet(tweet): for index in range(len(tw..