[LG U+ 5기]/Study

[2월][1주차][Python] 7,8일차 (csv.reader()/Matplotlb)

jjanggun0930 2025. 2. 6. 17:41

2025.02.05 ~ 2025.02.07

2일에 걸쳐 데이터 시각화를 진행했다. 

 

plot() , boxplot(), scatter(), hist(), pie(), bar().....

등등 다양한 시각화 방법들을 진행하고, 각자에 맞는 튜닝 방법도 배웠다. 

 

사실 이미 학교 수업에서 [파이썬데이터분석] 이라는 과목을 수강한 나에겐.... 이미 알고 있는 내용들이었고, 

많이 사용한 코드였다.

 

그럼에도, 혼자 아무것도 없는 창에서 과제를 진행하려고 하면 항상 교안을 찾아보거나 서치를 해서 함수를 기억해냈던...과거가 있었기에 이번에 한 번 쭉 정리하면서 손으로 코딩을 최대한 치려고 노력했다. (복붙없이) 

 

코딩은 항상 손에 익어야 되는 것 같다. 

 

+ 그리고 강사님께서 점점 강의속도가 빨라지시니 미리미리 그날그날 복습은 필수다.. ㅎㅎ


강의 내용중에 처음 접하고, 좀 귀찮고, 좀 어려웠던.... 

open 함수

 

과거 파이썬을 사용할 때 항상 데이터프레임으로 사용을 해서 pd.csv만 남발하던 나에게... 

오픈해서 하나하나 읽고, 하나하나 저장하고... 꼭 닫고... 

자꾸 오류나고...

 

그래도 수업을 거치면서 정말 pandas에 대한 깊은 애정이 더 생겼다. 

'''
csv.reader() : 파일에서 데이터를 읽어오는 함수
csv.writer() : 파일에 데이터를 저장하는 함수
'''

### csv.reader() ###
'''
1. csv 모듈
2. csv 파일을 open() 함수로 열고 저장 (f변수)
3. f변수를 reader()에 전달 => csv.reader 객체
'''
import csv
f = open('./data/seoul.csv', 'r', encoding='cp949')
# 'r' : 읽기 전용

data = csv.reader(f, delimiter=',')
# delimiter = ','
# csv 파일 : , / tab  
# 파일 내용에 따라 두가지로 나뉘는데, '' <-안에 있는 방법으로 읽어달라는 의미
# 위에서는 (,)를 기준으로 분리해서 저장하라는 것

'''
reader()
한 줄을 읽어서 list 형태로 저장
'''

print(data)
#=> <_csv.reader object at 0x000001907ED16B00>

f.close()
# 무조건 클로즈 !!!!

 

+ 또, 파이차트 그렇게 많이 그렸는데,,,,, 쪼개는건 상상도 못해봤다. 

쪼개서 시각화를 할 수 있다니... 사실 이걸 해보고 나니 그보다 더한 것도 가능할 것 같다는 생각이 든다. 

물론 더 넓게 쪼개기도 완전 가능. 숫자만 바꿔주면 된다. 0.1 -> 0.5 이런식으로 ! 

 

[쪼개기 코드]

import matplotlib.pyplot as plt
plt.pie([10,20])
plt.show()

plt.rc('font', family = 'Malgun Gothic')

size = [2441,2312,1031,1233]
label = ['A','B','C','D']
color = ['darkmagenta','deeppink','hotpink','pink']
plt.axis('equal')

plt.pie(size, labels = label, 
        autopct = '%.1f%%', 
        colors = color,
        explode = (0,0.1,0,0))  # 두번째 값(B)를 쪼개갰다.  
plt.legend()
plt.show()

이런식으로 ! 쪼개기 가능.. !


오늘자 마지막 시간 테스트...

오늘은 처참히 실패. 

50분 정도 주시고 그래프를 보여주시며 이것만 보고 만들어내라고 하셨는데, 그래프 그리는건 알겠는데, 도대체 전처리를 어떻게 해야할지 모르겠는것이다. 

 

항상 이쁘게 이미 전처리 되어있는것만 뭐 사부작 사부작 결측치나 없애고 해봤지....

이 데이터는 우선 header 가 2개나 되었고.. 그걸 처리하는게 어려웠다. 

어떻게해서 시간대별 (첫번째 헤더) 처리는 했는데, 그다음엔 두번째 헤더 승하차 처리를 어떻게 하지.. 고민한 하다가 시간이 벌써 끝.. 아쉬웠다 더 고민해보고 싶었는데...

 

함께 마지막 1시간 동안 강사님과 정답 코드 짜보면서 아하 이런거구나! 또 배워가는 시간이였다..(값진 시간)

 

그리고 요즘에 계속 마지막 자율 테스트? 하라고 주시는데 그 시간이 너무 재미있다. 

미니 코테 보는 기분..ㅎ 물론 오늘은 실패했지만, 내일은 성공하리다. 


과제는 아니지만 또 추가 문제를 내주셨는데, 오늘 집가서 꼭 풀어볼 것이다. 정말로.