※제로베이스 데이터 취업스쿨 11기 수강 중
📗 21일차 공부 내용 요약
1. 판다스 데이터 시각화, 경향표시 : 데이터를 정렬하며 시각화를 해보고, 경향을 만들고 일부 데이터를 강조해보았다.
2.파이썬 프로그래밍 테스트 : 약 4주간 걸쳐 학습한 파이썬에 대한 프로그래밍 테스트를 진행했다.
📖 21일차 공부 내용 자세히
1. 판다스 데이터 시각화와 경향 표시
데이터를 정렬하고 시각화하기
data_result["소계"].sort_values().plot(
kind="barh", grid = True, title= "가장 CCTV가 많은구",figsize = (10,10));
Numpy를 이용한 1차 직선 만들기
- np.polyfit(): 직선을 구성하기 위한 계수를 계산
- np.poly1d(): polyfit으로 찾은 계수를 파이썬에서 사용할 수 있는 함수로 만들어주는 기능
fp1 = np.polyfit(data_result["인구수"], data_result["소계"], 1)
f1 = np.poly1d(fp1)
f1(400000)
fx = np.linspace(100000, 700000, 100)
plt.figure(figsize=(14,10))
plt.scatter(data_result["인구수"], data_result["소계"], s = 50)
plt.plot(fx, f1(fx), ls = "dashed", lw=3, color ="g")
plt.xlabel("인구수")
plt.ylabel("CCTV")
plt.grid(True)
plt.show()
경향과의 오차 만들기
from matplotlib.colors import ListedColormap
fp1 = np.polyfit(data_result["인구수"], data_result["소계"], 1)
f1 = np.poly1d(fp1)
fx = np.linspace(100000, 700000, 100)
data_result["오차"] = data_result["소계"] - f1(data_result["인구수"])
#경향과 비교해서 데이터의 오차가 너무 나는 데이터를 계산
df_sort_f = data_result.sort_values(by = "오차", ascending=False) #내림차순
df_sort_t = data_result.sort_values(by = "오차", ascending=True) #오름차순
#colormap을 사용자 정의(user define)로 세팅
color_step = ["#e74c3c", "#2ecc71", "#95a9a6", "#2ecc71", "#3498db", "#3489db"]
my_cmap = ListedColormap(color_step)
plt.figure(figsize=(14,10))
plt.scatter(data_result["인구수"], data_result["소계"], s = 50, c= data_result["오차"], cmap = my_cmap)
#c = 색을 어느 데이터를 기준으로 구분할지, cmap = 어디있는 색을 사용할 지
plt.plot(fx, f1(fx), ls = "dashed", lw=3, color ="g")
for n in range(5):
#상위 5개
plt.text(
df_sort_f["인구수"][n] * 1.02, #x좌표
df_sort_f["소계"][n] * 0.98, #y좌표
df_sort_f.index[n], #title
fontsize = 13,
)
#하위 5개
plt.text(
df_sort_t["인구수"][n] * 1.02, #x좌표
df_sort_t["소계"][n] * 0.98, #y좌표
df_sort_t.index[n], #title
fontsize = 13,
)
plt.xlabel("인구수")
plt.ylabel("CCTV")
plt.colorbar()
plt.grid(True)
plt.show()
2. 파이썬 프로그래밍 테스트
총 6문제 (10점*2문제, 15점*2문제, 25점*2문제)
코드는 어떻게 작성해도 상관없으며, 정상작동이 되면 각 문제에 대해 만점이다.
문제에 대해 자세하게 기술할 수는 없어 간략히 남겨본다.
테스트는 금요일에 공개되었고, 응시시간은 금요일 오전 10시부터 월요일 오전 10시 사이에 제출하면 된다.
나는 토요일 오후에 테스트를 확인하고, 풀기 시작했으며 4시간 정도 걸렸던 거 같다.
아직 제출은 안했고, 제출전에 한번 더 코드를 확인해보고 제출하려고 한다.
우선, 모든 문제를 풀기는 했고 작동도 되기는 하는데 결과가 나와봐야 알 것 같다.
- 문제 1 : 자료형을 간단하게 선언하는 문제였다.
- 문제 2: 데이터를 입력받고, 데이터 타입을 확인하는 문제였는데 단순히 type()함수의 출력값 그대로 결과를 내는 것이 아닌 결과를 바꿔야 해서 고민이 좀 필요했다.
- 문제 3: 간단한 계산을 수행하는 함수를 작성하는 문제였다.
- 문제 4: 문장에서 일치하는 키워드를 찾는 문제였는데, 여러 개의 키워드를 찾았을 때 값을 도출하는 과정에서 고민이 좀 필요했다.
- 문제 5: 나눗셈 연산을 활용하지 않고, 나눗셈을 수행하는 함수를 만드는 것이었는데 제한되는 조건들이 있어서 일일이 조건식으로 걸어주느라 시간이 소요되었다. 코드가 길어져서 조금 불만족스럽기는 한데, 제대로 작동되나 여러번 확인해보았다.
- 문제 6: 하노이의 탑이 변형된 문제였다, 수업에서 배웠던 코드에서 약간 응용을 했는데 조건식을 쓰는 방식으로 해결해서 작동은 되었는데 이 것도 코드가 조금 길어져서 갸우뚱하기는 한다.
➰ 21일차 후기
드디어 짐처럼 느껴졌던 파이썬 프로그래밍 테스트를 해치웠다.
첫 테스트라서 겁을 많이 먹었는데, 그래도 내 방식대로 해결은 할 수 있어서 그동안 학습을 잘 따라가기는 했구나 라는 위안을 얻었다.(아직 결과도 안나왔는데 말이다 ㅎㅎ)
앞으로도 몇 번의 테스트가 있을텐데, 그 때는 지금만큼 스트레스를 받지 말고 묵묵하게 따라가면 되겠다라는 생각을 해보았다.
이제 판다스 학습에 다시 몰입해서 열을 올려야겠다~!
※본 내용은 제로베이스 데이터 취업 스쿨에서 제공하는 학습 내용에 기반합니다.
'제로베이스 데이터 스쿨 > 일일 스터디 노트' 카테고리의 다른 글
23일차 스터디노트 / 판다스 데이터 분석, Google Maps 활용, 피봇테이블, 서울시 범죄 데이터 정리 (1) | 2023.02.02 |
---|---|
22일차 스터디노트 / 판다스 자율 학습 - [Do it! 데이터 분석을 위한 판다스 입문] (0) | 2023.02.02 |
20일차 스터디노트 / 파이썬 판다스 - 데이터 훑어보기, 데이터 합치기, matplotlib 기초 (0) | 2023.01.28 |
19일차 스터디노트 / 파이썬 판다스 기초( Series, DataFrame, 데이터 정렬, 선택, 슬라이스, 컬럼 추가, 제거, apply) (1) | 2023.01.27 |
18일차 스터디노트 / 파이썬 알고리즘(병합정렬, 재귀, 평균) 연습문제, 미니콘다, vscode, 구글 colab (1) | 2023.01.25 |