1장 - 서울시 구별 CCTV 현황 분석¶1-1 CCTV 현황과 인구 현황 데이터 구하기¶서울시의 CCTV 현황은 구글 검색만으로도 쉽게 구할 수 있다. '서울시 자치구 연도별 CCTV 설치 현황'을 검색하면 '서울 열린데이터 광장' 사이트의 해당 페이지로 갈 수 있다. csv 파일은 콤마로 구분된 파일이다. 우리나라에서는 잘 통용되지 않지만 외국 자료를 검색하다 보면 자주 나타난다. 텍스트 파일이기 때문에 메모장에서도 열린다. 그런데 만약 csv 파일에 한글이 UTF-8로 인코딩되어 있다면 엑셀에서 열었을때 한글이 깨져 보일 수 있다. 나는 위 책의 나와있는 github에서 data를 다운 받았다. (데이터 출처: https://github.com/PinkWink/DataScience) 1-2 파이썬에..
#19 판다스 chapter 19. 시계열 데이터 - 사례별 시계열 데이터 계산하기 사례별 시계열 데이터 계산하기 에볼라 최초 발병일 계산하기 1) ebola 데이터프레임의 마지막 행과 열을 5개씩만 살펴보자. ebola 데이터프레임은 데이터가 시간 역순으로 정렬되어 있다. 즉, 시간 순으로 데이터를 살펴 보려면 데이터프레임의 마지막부터 살펴봐야 한다. import pandas as pd ebola = pd.read_csv('C:/Users/이재윤/doit_pandas/data/country_timeseries.csv') ebola['date_dt'] = pd.to_datetime(ebola['Date']) print(ebola.iloc[-5:, :5]) Date Day Cases_Guinea Cases..
#18 판다스 chapter 18. 시계열 데이터 시계열 데이터 datetime 오브젝트 datetime 라이브러리는 날짜와 시간을 처리하는 등의 다양한 기능을 제공하는 파이썬 라이브러리이다. datetime 라이브러리에는 날짜를 처리하는 date 오브젝트, 시간을 처리하는 time 오브젝트, 날짜와 시간을 모두 처리하는 datetime 오브젝트가 포함되어 있다. datetime 오브젝트 사용하기 1) datetime 오브젝트를 사용하기 위해 datetime 라이브러리를 불러온다. from datetime import datetime 2) now, today 메서드를 사용하면 다음과 같이 현재 시간을 출력할 수 있다. now1 = datetime.now() print(now1) now2 = datetim..
#17 판다스 chapter 17. 그룹연산 #2 그룹연산 데이터 필터링 만약 그룹화한 데이터에서 원하는 데이터를 걸러내고 싶다면 어떻게 해야 할까? 그럴 때는 데이터 필터링을 사용하면 된다. 데이터 필터링을 사용하면 기준에 맞는 데이터를 걸러낼 수 있다. 데이터 필터링 사용하기 -- filter 메서드 1) 다음과 같이 tips데이터 집합을 불러와 데이터 크기를 확인한다. import seaborn as sns tips = sns.load_dataset('tips') print(tips.shape) (244, 7) 2) size 열의 데이터 수를 확인해 보면 1,5,6 테이블의 주문이 매우 적다는 것을 알 수 있다. print(tips['size'].value_counts()) 2 156 3 38 4 ..
#16 판다스 chapter 16. 그룹연산 #1 그룹 연산 데이터 집계 데이터 집계하기 앞서 배웠던 갭마인더 데이터 집합으로 각 연도의 평균 수명을 구했던 것을 토대로 수집한 데이터를 바탕으로 평균이나 합 등을 구하여 의미있는 값을 도출해 내는 것을 '집계'라고 한다. 데이터를 집계하면 전체 데이터를 요약, 정리하여 볼 수 있기 때문에 데이터 분석이 훨씬 편해진다. 그러면 groupby 메서드로 평균값을 구하는 과정을 통해 데이터 집계가 무엇인지 알아보자. groupby 메서드로 평균값 구하기 1) 먼저 갭마인더 데이터 집합을 불러온다. import pandas as pd df = pd.read_csv('C:/Users/이재윤/doit_pandas_study/data/gapminder.tsv', sep..
#15 판다스 chapter 15. apply 메서드 활용 apply 메서드 활용 - 간단한 함수 만들기 함수의 기본 코드는 다음과 같다. 1) 제곱 함수는 아래와 같다. def my_sq(x): return x ** 2 2) n 제곱 함수 my_exp는 다음과 같다. def my_exp(x,n): return x ** n 과정 1~2에서 만든 함수를 사용해 보자. print(my_sq(4)) 16 print(my_exp(2,4)) 16 - apply 메서드 사용하기 - 기초 시리즈와 데이터프레임에 apply 메서드 사용하기 1) 시리즈와 aplly 메서드 먼저 실습에 사용할 때 데이터프레임을 준비합니다. import pandas as pd df = pd.DataFrame({'a': [10,20,30],..
#14 판다스 chapter 14. 문자열 처리하기 문자열 처리하기 - 문자열 다루기 - 파이썬과 문자열 문자열은 작은따옴표나 큰따옴표로 감싸서 만든다. 다음은 작은 따옴표로 grail, a scratch 라는 문자열 데이터를 만들어 변수 word,sent 에 저장한 것이다. word = 'grail' sent = 'a scratch' - 인덱스로 문자열 추출하기 데이터프레임에서 인덱스를 이용하여 원하는 데이터를 추출했던 것을 기억할 것이다. 문자열도 인덱스를 사용하여 추출할 수 있다. 문자는 길이가 1인 문자열로 생각하면 된다. -문자열 grail과 인덱스 인덱스 0 = g = 음수 -5 1 = r = 음수 -4 2 = a = 음수 -3 3 = i = 음수 -2 4 = l = 음수 -1 -문자열 a s..
#13 판다스 chapter 13. 판다스 자료형 판다스 자료형 자료형 다루기 - 자료형 변환하기 자료형 변환은 데이터 분석 과정에서 반드시 알아야 하는 요소중 하나이다. 예를 들어 카테고리는 문자열로 변환해야 데이터 분석을 더 수월하게 할 수 있기 때문에 자주 변환하는 자료형이다. 하지만 전화번호로 평균을 구하거나 더하는 등의 계산은 거의 하지 않는다. 오히려 문자열처럼 다루는 경우가 많다. 아래 실습을 통해 여러가지 자료형을 문자열로 변환하는 방법에 대해 알아보자. -자료형을 자유자재로 변환하기 -- astype 메서드 1) 이번에 사용할 데이터 집합은 seaborn 라이브러리의 tips 데이터 집합이다. import pandas as pd import seaborn as sns tips = sns...
#12 판다스 chapter 12. 깔끔한 데이터 만들기 깔끔한 데이터 열과 피벗 - 넓은 데이터 데이터프레임의 열은 파이썬의 변수와 비슷한 역할을 한다. 예를들어 ebola 데이터 프레임 열은 사망한 날짜, 발병 국가 등의 데이터를 저장하고 있다. 하지만 이번에 다루는 데이터프레임의 열은 열 자체가 어떤 값을 의미한다. 그러다 보니 데이터프레임의 열이 옆으로 길게 늘어선 형태가 된다. 바로 이것을 넓은 데이터라고 한다. 밑에서 자주 사용할 melt 메서드에 대해 알아보자. - melt 메서드 판다스는 데이터프레임을 깔끔한 데이터로 정리하는 데 유용한 melt 메서드를 제공한다. 다음은 metl 메서드를 실습할 때 사용할 인자를 정리한 것이다. melt 메서드 인자 id_vars - 위치를 그대로 유지할..
#11 판다스 chapter 11. 누락값 처리하기 누락값 처리하기 누락값이란? - 누락값과 누락값 확인하기 누락값(NaN)은 Nan,NAN,nan 과 같은 방법으로 표기할 수 있다. 실습을 진행하며 누락값이 무엇인지 알아보자. 누락값 확인하기 1) 먼저 누락값을 사용하기 위해 numpy에서 누락값을 불러온다. from numpy import NaN,NAN,nan 2) 누락값은 0, ' ' 과 같은 값과는 다른 개념이다. 누락값은 말 그대로 데이터 자체가 없다는 것을 의미한다. 그래서 '같다'라는 개념도 없다. 다음은 누락값과 True, False, 0, '' 을 비교한 결과이다. print(NaN == True) False print(NaN == False) False print(NaN == 0) Fa..