파이썬 과정은 나중에 몰아 들어도 되지만 1주 차 진도는 맞춰 끝내 놓고 싶어서 어제(12/26) 하루만에 부랴부랴 들어봄
파이썬은 재밌다고 평을 들어서 룰루랄라 시작했는데 재밌지만 뭔가 짜증남;..
데이터 불러오는 것까지 okay.
묶는거 갸웃. 데이터 정렬?. 그래프 일단갠춘...
메모장 되새김질(웹 개발보다 자세히 쓴 것 무엇,,,)
1주 차
장점: 계속해서 많은 전처리와 데이터 분석을 하는 것
단점: 같은 프로세스로 계속 데이터 분석함
-파이썬과 데이터 분석 환경
-Pandas 파이썬으로 데이터 분석을 하면서 가장 많이 쓰는 도구
-Matplotlib 데이터를 분석하고 그 결과를 시각화하는 도구
-실제 데이터 분석 방법
파이썬을 설치한다 - 번역팩
아나콘다 - 데이터 분석을 위한 도구 모음
파이썬 라이브러리 - 파이썬 언어로 도구들을 만들어 놓은 것
맥 런치패드 command+스페이스바 launchpad검색
03. 파이썬 기초 문법 - (1)
🔎변수 - 데이터를 저장할 수 있는 공간
변수 입력 후 실행 - Run버튼 or Shift+Enter
equal(=) 오른쪽에 있는 데이터를 왼쪽 변수에 대입해준다.
🔎자료형 - 1. 숫자형 2. 문자열 3. 참/거짓
num = 12 name = 'Harry' number_status = True
자료 구조 - 1. 리스트(List) 2. 딕셔너리(Dictionary) 3. 집합(Set)
1. 리스트 - 순서가 있고 그 아래에 리스트로 추가할 수 있음 ex) 웨이팅 리스트, 합격 명단
waiting_list = []
waiting_list.append('아무개')
*꿀팁: 두 글자 정도 치고 tap키 누르면 자동 완성됨, a키 누르면 칸 추가
2. 딕셔너리 - 어떤 키 값에 밸류를 넣어 줌 ex) 영한사전
eng_kor_dict = {}
eng_kor_dict = {'apple': '사과', 'pear':'배'}
3. 집합 - 중복된 데이터는 제거되고 집합으로만 떨어짐
group1 = set([1,2,3,4,2,1])
group1
교집합(&) , 합집합(|)
04. 파이썬 기초 문법 - (2)
🔎조건문 if
age = 17
if age >= 20:
print("성인입니다")
else:
print("청소년이에요")
age = 65
if age > 80:
print("아직 정정하시군요")
elif age > 60:
print("인생은 60부터!")
else:
print("아직어려요!")
elif(else if)
파이썬은 if문이 해당하는 코드 print문이 어디까지 출력이 돼야 되는지를 공백(indentation)으로 알려줌 (띄어쓰기 4칸)
🔎반복문 for
fruits = ['사과', '배', '감', '귤']
for fruit in fruits:
print(fruit)
fruits = ['사과', '배', '감', '귤', '수박', '딸기', '사과', '배']
count = 0
for fruit in fruits:
if fruit == '사과':
count = count + 1
count
🔎함수- 어떤 입력 값을 넣고 안에서 동작을 한 다음에 그 결과가 나오는 것 (무엇이 들어가서 동작한 다음에 값이 나온다) *소괄호()만 써야 됨
*data는 리스트이기 때문에 대괄호[] 써야 함, 딕셔너리도 대괄호[]
def sum(a, b):
return a + b
sum(3, 4)
sum(3, 5)
def print_name(name):
print("반갑습니다 " + name + "님")
print_name("아무개")
Pandas
관계형 데이터 다룸
Import 가져온다 pandas
import pandas as pd
별표시*뜨면 불러오는 중임
내 위치는 ./로 나타냄
pd.read_csv('./data/chicken_07.csv')
chicken07 = pd.read_csv('./data/chicken_07.csv')
chicken07.describe()
Count 개수
Mean 평균값
Std 표준편차
Min 최솟값
Max 최댓값
chicken07['성별']
중복제거 - set(chicken07['성별'])
Len - length 길이를 알려 주는 함수
set(chicken07['성별']), len(set(chicken07['성별']))
chicken_data = pd.concat([chicken07,chicken08,chicken09])
chicken_data = chicken_data.reset_index(drop= True)
chicken_data
Matplotlib
그래프 그려서 시각화
import matplotlib.pyplot as plt
요일별 총 통화건수 - sum_of_calls_by_week = chicken_data.groupby('요일')['통화건수'].sum()
sum_of_calls_by_week
plt.figure(figsize=(8,5))
plt.bar(sum_of_calls_by_week.index, sum_of_calls_by_week)
plt.title('요일에 따른 치킨 주문량 합계')
plt.show()
plt.rcParams['font.size']
plt.rcParams['font.family'] 폰트 글자체
plt.rcParams['font.family'] = "Malgun Gothic" 맥은 맑은고딕없음
plt.rcParams['font.family'] = "AppleGothic"
그래프 입맛대로 바꿔보기
Chaining 개념 sum_of_calls_by_week = chicken_data.groupby('요일')['통화건수'].sum()
groupdata = chicken_data.groupby('요일')
call_data = groupdata['통화건수']
sum_of_calls_by_week = call_data.sum()
sorted_sum_of_calls_by_week = sum_of_calls_by_week.sort_values(ascending=True)
sorted_sum_of_calls_by_week
plt.figure(figsize=(8,5))
plt.bar(sorted_sum_of_calls_by_week.index, sorted_sum_of_calls_by_week)
plt.title('요일에 따른 치킨 주문량 합계')
plt.show()
요일별 - weeks = ['월', '화', '수', '목', '금', '토', '일']
sum_of_calls_by_weeks = chicken_data.groupby('요일')['통화건수'].sum().reindex(weeks)
sum_of_calls_by_weeks
plt.figure(figsize=(8,5))
plt.bar(sum_of_calls_by_weeks.index, sum_of_calls_by_weeks)
plt.title('요일에 따른 치킨 주문량 합계')
plt.show()
빠른 버전 -
sum_of_calls_by_age = chicken_data.groupby('연령대')['통화건수'].sum()
sum_of_calls_by_age
자세한 버전 -
groupdata = chicken_data.groupby('연령대')
call_data = groupdata['통화건수']
sum_of_calls_by_age = call_data.sum()
sum_of_calls_by_age
정렬 -
groupdata = chicken_data.groupby('연령대')
call_data = groupdata['통화건수']
sum_of_calls_by_age = call_data.sum()
sorted_sum_of_calls_by_age = sum_of_calls_by_age.sort_values(ascending= True)
sorted_sum_of_calls_by_age
그래프 -
plt.figure(figsize=(8,5))
plt.bar(sorted_sum_of_calls_by_age.index, sorted_sum_of_calls_by_age)
plt.xlabel('연령대')
plt.title('연령대별 치킨 전체 주문량')
plt.show()
groupdata = chicken_data.groupby('시군구')
call_data = groupdata['통화건수']
sum_of_calls_by_city = call_data.sum()
sorted_sum_of_calls_by_city = sum_of_calls_by_city.sort_values(ascending=False)
sorted_sum_of_calls_by_city
ascending에 True, False가 있음
plt.figure(figsize=(10,5))
plt.bar(sorted_sum_of_calls_by_city.index, sorted_sum_of_calls_by_city)
plt.xlabel('지역별')
plt.xticks(rotation = 45)
plt.show()
rotation 기울기
헷갈리고 어려움.
- 데이터를 불러오고 -
- 불러온 데이터를 기준에 맞게 묶고 -
- 묶은 데이터를 정렬하고 -
- 정렬한 데이터를 그래프로 그리고 -
- 그 그래프에서 의미를 찾는 과정을 반복하면 익혀진다 함.
'IT > 개발' 카테고리의 다른 글
파이썬 3주차 개발일지 (1/3~1/9) (0) | 2022.01.13 |
---|---|
웹 개발 3주차 개발일지 (1/3~1/9) (0) | 2022.01.13 |
파이썬 2주차 개발일지 (12/27~1/2) (0) | 2022.01.05 |
웹 개발 2주차 개발일지 (12/27~1/2) (0) | 2022.01.05 |
웹 개발 1주차 개발일지 (12/20~12/26) (0) | 2021.12.27 |