본문 바로가기
카테고리 없음

2024.01.25 빅데이터 분석가 양성과정 19일차 노트

by Choose Me 2024. 1. 25.
SMALL

1. 기업맞춤형 빅데이터 분석가 양성과정 소개 

https://bit.ly/41x8FOX

 

[기업맞춤형 빅데이터 분석가 양성과정] 선수과정이란 무엇인가?

안녕하세요! 저는 12월 28일부터 한국품질재단의 기업맞춤형 빅데이터 분석 양성과정을 시작합니다! [취업과 창업]고용노동부와 한국품질재단 & 안동대학교가 함께하는 2024년 K-Digital Training(1,000

crosefrog.tistory.com

https://bit.ly/3NIinbu

 

[취업과 창업]고용노동부와 한국품질재단 & 안동대학교가 함께하는 2024년 K-Digital Training(1,000만원

안녕하세요. 저는 졸업을 1년 남기고 이력서, 자소서, 포트폴리오 및 미니프로젝트와 최종프로젝트를 수행하는 한국품질재단의 빅데이터 분석가 양성과정에 참가하게 되었습니다. 오늘날 세상

crosefrog.tistory.com

2. Notion 일과 삶 & 빅데이터 분석가 양성과정 대시보드

https://lifemoment.notion.site/497bff9488aa4dec9171d08224a7a978?pvs=4

 

일과 삶 | Notion

빛나는 당신의 일과 삶을 이곳에 기록하세요.

lifemoment.notion.site

3. Mini-Project: 학생 관리 시스템

https://crosefrog.tistory.com/entry/2024012320240124-Mini-Project-%ED%95%99%EC%83%9D-%EA%B4%80%EB%A6%AC-%EC%8B%9C%EC%8A%A4%ED%85%9C

 

2024.01.23~2024.01.24 Mini Project: 학생 관리 시스템

https://www.miricanvas.com/v/12gpb9a 미니 프로젝트: 학생 관리 시스템 디자인 전문가가 아니어도 무료 템플릿으로 손쉽게 원하는 디자인을 할 수 있어요. www.miricanvas.com

crosefrog.tistory.com

4. Naver 블로그 포스팅

https://blog.naver.com/PostView.naver?blogId=moment_by_moment&logNo=223331721507&redirect=Dlog

 

미니 프로젝트 1일차 후기

얼추 형식은 세웠습니다. 이제 남은 건, 해당 과정을 코딩하는 것입니다. 다만, 생각보다 코드가 안 짜여집...

blog.naver.com

https://blog.naver.com/PostView.naver?blogId=moment_by_moment&logNo=223332864459&redirect=Dlog

 

미니 프로젝트 2일차 후기

이제 초안을 완성하였으며, 해당 부분은 내일 발표하기 전에 수정 및 마무리할 예정입니다. 이렇게 14장의 ...

blog.naver.com

5. 필기노트

다음 주 부터는 MySQL 진행, 데이터분석을 할 것인지 웹을 할 것인지 결정함.

UNIT 11 대중교통 데이터 시각화하기

네째마당 - 대중교통 데이터 프로젝트

  • 유임승차 비율이 가장 높은 역은 어디인가?
  1. 데이터를 읽어 온다.
  2. 필요시 데이터를 정제(데이터 전처리)를 한다.
  3. 모든 역의 데이터를 바탕으로 각 역의 유임승 인원의 비율을 구한다.
  4. 이 비율이 가장 높은 역의 이름과 비율을 출력한다.
  5. 적절한 시각화 방법으로 보고서에 들어갈 그래프를 그린다.

6개 역을 제외하고, 돈 안내고 탄 사람이 존재한다.

단계 6: ‘유임승차’, ‘유임하차’, ‘무임승차’, ‘무임하차’ 열 데이터를 정수로 변경

  • 예외 처리: try~except구문 외에도 if문

작업순서

  • 데이터를 읽어 온다.
  • 필요시 데이터 정제(데이터 전처리)를 한다.
  • 모든 역의 데이터를 바탕으로 각 역의 유임승차인원의 비율을 구한다.
  • 유임승차인원의 비율이 가장 높은 역의 이름과 비율을 출력한다.

유임 승차 인원의 비율 = 유임 승차 인원 / 전체(무임 + 유임) 승차 인원

→ 유임 승차 인원의 비율이 94% 이상인 역에 대해 ‘유임승차’, ‘유임하차’, ‘무임승차’, ‘무임하차’ 비율을 파이차트로 표현

import matplotlib.pyplot as plt
import koreanize_matplotlib
def plot_pie_chart(name, line, data):
  label = ['유임승차', '유임하차', '무임승차' ,'무임하차']
  plt.figure(dpi=200)
  plt.title(name+' '+line)
  plt.pie(data, labels=label, autopct='%1.f%%')
  plt.axis('equal')
  plt.savefig(name+' '+line + '.png')
  plt.show()
# ['사용월', '호선명', '역ID', '지하철역', '유임승차', '유임하차', '무임승차', '무임하차']
for row in data:
  if row[6] != 0:
    rate = row[4]/(row[4] + row[6])
    if rate >= 0.94:
      plot_pie_chart(row[3], row[1], row[4:])

지하철 시간대별 데이터 시각화하기

  • 지하철 시간대별 데이터를 바탕으로

출근 시간대 사람들이 가장 많이 타고 내리는 역은 어디일까?

지하철 시간대별로 가장 많은 사람이 승하차하는 역은 어디일까요?

  • 지하철 시간대별 이용 현황 데이터 정제하기

‘2023년 12월 교통카드 통계자료.xls’ 파일을 다시 오픈

‘지하철 시간대별 이용현황’ sheet를 선택

다른 이름(subwaytime.csv)으로 저장

마지막 열, ‘작업일시’ 열을 삭제

→ 3행 ~ 끝까지, E열 ~ AZ열까지 선택 후 셀 타입을 ‘일반’으로 변경 (숫자 표현에 쉼표를 제거하기 위해) 후 저장

  • 위 subwaytime.csv 파일을 코랩 환경에서 사용할 수 있도록 준비

지하철 시간대별 이용 현황 데이터 정제하기

  • 데이터 읽어 오기 그리고 헤더 제거하기
# 파일에서 데이터 읽어 오기
f = open('./drive/MyDrive/data_files/subwaytime.csv')
data = csv.reader(f)
# header 분리
header = next(data)
# data를 리스트 형 데이터로 변경
data = list(data)
f.close()
  • subwaytime.csv 파일을 보면 헤더가 두 줄인 것을 확인할 수 있음
data = data[1:]

아침 07:00:00~08:59:59 시간대에 역 별로 지하철 탑승 객의 수를 bar 차트로 그리기.

# 교재 187p 내용
npeople_get_on =[]
for row in data:
  npeople_get_on.append(sum(row[10:13:2]))

npeople_get_on.sort()
plt.bar(range(len(npeople_get_on)), npeople_get_on)
plt.grid()
plt.show()
# ['사용월', '호선명', '역ID', '지하철역', '유임승차', '유임하차', '무임승차', '무임하차']
names =[]
npeople =[]

for row in data:
  total = sum(row[11:16:2])
  if total >= 400000:
    names.append(row[3]+row[1])
    npeople.append(total)

for name, n in zip(names, npeople):
  print(name+':', n)

plt.figure(figsize=[24, 4])
plt.bar(names, npeople)
plt.xticks(range(len(names)), names, rotation=45)
plt.grid()
plt.show()
=>
서울역1호선: 483689
종각1호선: 491830
을지로입구2호선: 595862
성수2호선: 448350
잠실(송파구청)2호선: 441184
삼성(무역센터)2호선: 658911
선릉2호선: 576660
역삼2호선: 721797
강남2호선: 702035
구로디지털단지2호선: 409566
양재(서초구청)3호선: 426364
여의도5호선: 416634
광화문(세종문화회관)5호선: 450415
가산디지털단지7호선: 686146

데이터 분석을 할 때는, pandas를 사용한다.

UNIT 11 대중교통 데이터 시각화하기

네째마당 - 대중교통 데이터 프로젝트

  • 유임승차 비율이 가장 높은 역은 어디인가?
  1. 데이터를 읽어 온다.
  2. 필요시 데이터를 정제(데이터 전처리)를 한다.
  3. 모든 역의 데이터를 바탕으로 각 역의 유임승 인원의 비율을 구한다.
  4. 이 비율이 가장 높은 역의 이름과 비율을 출력한다.
  5. 적절한 시각화 방법으로 보고서에 들어갈 그래프를 그린다.

6개 역을 제외하고, 돈 안내고 탄 사람이 존재한다.

단계 6: ‘유임승차’, ‘유임하차’, ‘무임승차’, ‘무임하차’ 열 데이터를 정수로 변경

  • 예외 처리: try~except구문 외에도 if문

작업순서

  • 데이터를 읽어 온다.
  • 필요시 데이터 정제(데이터 전처리)를 한다.
  • 모든 역의 데이터를 바탕으로 각 역의 유임승차인원의 비율을 구한다.
  • 유임승차인원의 비율이 가장 높은 역의 이름과 비율을 출력한다.

유임 승차 인원의 비율 = 유임 승차 인원 / 전체(무임 + 유임) 승차 인원

→ 유임 승차 인원의 비율이 94% 이상인 역에 대해 ‘유임승차’, ‘유임하차’, ‘무임승차’, ‘무임하차’ 비율을 파이차트로 표현

import matplotlib.pyplot as plt
import koreanize_matplotlib
def plot_pie_chart(name, line, data):
  label = ['유임승차', '유임하차', '무임승차' ,'무임하차']
  plt.figure(dpi=200)
  plt.title(name+' '+line)
  plt.pie(data, labels=label, autopct='%1.f%%')
  plt.axis('equal')
  plt.savefig(name+' '+line + '.png')
  plt.show()
# ['사용월', '호선명', '역ID', '지하철역', '유임승차', '유임하차', '무임승차', '무임하차']
for row in data:
  if row[6] != 0:
    rate = row[4]/(row[4] + row[6])
    if rate >= 0.94:
      plot_pie_chart(row[3], row[1], row[4:])

지하철 시간대별 데이터 시각화하기

  • 지하철 시간대별 데이터를 바탕으로

출근 시간대 사람들이 가장 많이 타고 내리는 역은 어디일까?

지하철 시간대별로 가장 많은 사람이 승하차하는 역은 어디일까요?

  • 지하철 시간대별 이용 현황 데이터 정제하기

‘2023년 12월 교통카드 통계자료.xls’ 파일을 다시 오픈

‘지하철 시간대별 이용현황’ sheet를 선택

다른 이름(subwaytime.csv)으로 저장

마지막 열, ‘작업일시’ 열을 삭제

→ 3행 ~ 끝까지, E열 ~ AZ열까지 선택 후 셀 타입을 ‘일반’으로 변경 (숫자 표현에 쉼표를 제거하기 위해) 후 저장

  • 위 subwaytime.csv 파일을 코랩 환경에서 사용할 수 있도록 준비

지하철 시간대별 이용 현황 데이터 정제하기

  • 데이터 읽어 오기 그리고 헤더 제거하기
# 파일에서 데이터 읽어 오기
f = open('./drive/MyDrive/data_files/subwaytime.csv')
data = csv.reader(f)
# header 분리
header = next(data)
# data를 리스트 형 데이터로 변경
data = list(data)
f.close()
  • subwaytime.csv 파일을 보면 헤더가 두 줄인 것을 확인할 수 있음
data = data[1:]

아침 07:00:00~08:59:59 시간대에 역 별로 지하철 탑승 객의 수를 bar 차트로 그리기.

# 교재 187p 내용
npeople_get_on =[]
for row in data:
  npeople_get_on.append(sum(row[10:13:2]))

npeople_get_on.sort()
plt.bar(range(len(npeople_get_on)), npeople_get_on)
plt.grid()
plt.show()
# ['사용월', '호선명', '역ID', '지하철역', '유임승차', '유임하차', '무임승차', '무임하차']
names =[]
npeople =[]

for row in data:
  total = sum(row[11:16:2])
  if total >= 400000:
    names.append(row[3]+row[1])
    npeople.append(total)

for name, n in zip(names, npeople):
  print(name+':', n)

plt.figure(figsize=[24, 4])
plt.bar(names, npeople)
plt.xticks(range(len(names)), names, rotation=45)
plt.grid()
plt.show()
=>
서울역1호선: 483689
종각1호선: 491830
을지로입구2호선: 595862
성수2호선: 448350
잠실(송파구청)2호선: 441184
삼성(무역센터)2호선: 658911
선릉2호선: 576660
역삼2호선: 721797
강남2호선: 702035
구로디지털단지2호선: 409566
양재(서초구청)3호선: 426364
여의도5호선: 416634
광화문(세종문화회관)5호선: 450415
가산디지털단지7호선: 686146

데이터 분석을 할 때는, pandas를 사용한다.

반응형
LIST