Python의 기초는 정리해서 따로 업로드 예정
파이썬 설치는 이쪽으로 바로가기
Pandas는 Python의 라이브러리 중에 하나 이다.
라이브러리라고 어려우니 에드온, 도구 같은 거라고 생각하면 편하다.

Pandas는 ‘데이터분석’에 특화되어 있는 도구로서
자료를 정리하고 읽고, 계산하고, 분석하는데 아주 유용하다.
이걸 추후에 설명할 matplotlib이라는 라이브러리와 함께 사용하면 그래프로 시각화 할 수 있다.
찾아보니 키움증권API와 Pandas, matplotlib를 활용해 주식을 하는 분도 계시더라…

자세한 것은 Pandas 홈페이지 를 보자

여하튼 일단 Pandas라는 친구를 알아보자

import pandas as pd


먼저 이렇게 입력을 하고 실행해보자.
아무 일도 일어나지 않을 것이다.
import는 이 문서에선 이 도구(라이브러리)를 쓸꺼야 라고 하는 작업이다.

연습용 데이터가 있으면 편하니 임시데이터로 해보자
연습용 날씨 데이터 <- 다운을 받으면 아래 내용을 이해기 편하다.

엑셀 파일 읽기

제목에서도 말했듯이 엑셀을 가지고 놀아보자

날씨 = pd.read_excel('C:/Users/user/Documents/Python/BigPy/data/weather.xlsx')


pd는 pandas의 약자이고 read_excel은 pandas의 수많은 기능 중 하나이다.
말 그대로 엑셀을 읽어오는 기능인데 일단 위 처럼 쳤으면 아무런 반응이 없을 것이다.

지금 우리가 한 행동은 weather.xlsx라는 엑셀 파일을 ‘날씨’라는 글자로 규정(=) 한 것이다.
즉 ‘날씨’ 라는 단어 자체가 weather.xlsx 가 된 것이다.

날씨


한글로 ‘날씨’라고 쳐보자 그럼 이렇게 뜰 것이다.

날씨를 불러보자
잘 떴으면 성공한 것이다. 계속 가보자.
안뜬 다면 엑셀 파일의 경로를 잘 지정하였는지 체크하자
(C:/~~~/weather.xlsx 요걸 경로라고 하는데 파일의 주소를 가르킨다.)

이렇게 짤리면 엑셀 보다 보기 불편한데요?
맞다! 이렇게 보면 불편하다.

이제 여기서 보기 편하게 원하는 데이터를 뽑아보자
일단 데이터를 보자

엑셀 첫 세줄
‘날씨[:3]’은 날씨라는 곳의 3 까지 라는 뜻이다.
엥? 근데 4행이 나왔는데요? 컴퓨터는 0부터 숫자를 샌다.

일단 데이터를 살펴보자 첫 행을 보니location,date,weekDay,avgTemp 순으로 항목이 나열 되어 있다.
보아하니 지역별 일자별 최고/최저기온 등을 정리한 자료 같다.

일단 지역을 살펴보자.
location은 영어니 한글로 바꿔주자 (아까의 연습이다.)

지역 = 날씨['location']

이렇게 하면 ‘날씨’라는 곳의 ‘location’을 지역으로 규정한 것이다.
그럼 이제 세어보자.

지역.value_counts()

엑셀 함수를 다뤄본 사람은 익숙한 함수일 것이다.
지역(location)에 있는 것을 새어주는 명령어이다.

그럼 결과가 이렇게 나올 것이다.
seoul 730
suwon 730
Name: location, dtype: int64

서울과 수원이 각각 730개씩 있다는 걸 알 수 있다.
일단 수원날씨만 뽑아보자

수원날씨 = 날씨[지역 == 'suwon']
수원날씨.sample(10)

(위를 서울로 바꾸고 싶다면 연습삼아 해보는 것도 좋다.)
눈치가 빠른 사람이면 위의 내용도 쉽게 유추 할 수 있을 것이다.
‘수워날씨’를 ‘날씨’안의 ‘지역’ 중 ‘수원’인 것으로 규정하는 것이다.
.sample 은 샘플 데이터를 뽑는 것이다 .sample(10)은 11개를 뽑는 것 이다.
(첫 행은 항목이니 데이터는 10개 ‘.sample(0)’을 입력하면 첫 행인 항목행만 출력된다.)

그럼 이제 평균을 뽑아보자
이번엔 서울 날씨로 해보자 방법은 아까와 같다.

서울날씨 = 날씨[지역 == 'seoul']
서울날씨['avgTemp'].mean()

서울날씨를 규정 해준 뒤, ‘.mean()’라는 평균을 구하는 명령어를 붙여주자
그럼 ‘13.365616438356161’라는 평균값이 나온다.

그럼 평균보다 더운 서울 날씨 샘플을 5개를 뽑아 뽑아보자

서울평균 = 서울날씨['avgTemp'].mean()
더운서울날씨 = 서울날씨[서울날씨['avgTemp'] > 서울평균]
더운서울날씨.sample(5)

평균보다 더운 날씨이니 >를 통해 표기해주고 5개는 .sample로 뽑으면 성공이다.

다음에는 각 데이터를 합쳐서 필요한 데이터를 뽑아보자

서울날씨[:10]['avgTemp'].plot(kind='bar')

표 만들기
이런 식으로 표도 만들 수 있다.