새로운 한 주가 밝았으니, 이번주는 또 새로운 마음으로 시작해야 한다. 이번주의 목표는 판다스 필기를 빠르게 따라잡고, 그걸 바탕으로 데이터 시각화 강의를 마스터하는 것이다. 따라서 지난주, 오늘 세션에서 배운 판다스의 내용을 복습한 뒤, 그 내용으로 판다스 개인 과제를 푸는 것까지가 이번주의 가장 큰 과제가 아닐까 싶다.
이제 나는 판다스로 무엇을 할 수 있을까? 우선 판다스와 님피 라이브러리를 불러와 해당 라이브러리의 함수를 사용할 수 있다. 내 드라이브에 위치한 파일과 구글 드라이브를 마운팅해서 가져와 사용할 수도 있다.
또한 내가 가져온 테이블, 데이터프레임을 '볼 수 있다'. 이것은 단순히 데이터프레임을 가져와 꺼내는 것을 넘어, 해당 데이터프레임이 어떤 성질을 갖고 있는지, 갖고 있는 내용은 무엇인지를 구체적으로 볼 수 있음을 의미한다.
이후 세션에서 배운 내용을 통해 여러 데이터프레임을, SQL로 치면 병합할 수 있게 되었다. 수평결합인 MERGE, 수직결합인 JOIN, 그리고 이 둘을 모두 할 수 있는 CONCAT까지 배우면서, 이것을 사용해 여러 테이블에 산발적으로 흩어져있지만 연관성이 있는 수치들을 하나로 묶어, 의미있는 정보를 만들어낼 수 있다.
아직 내가 할 수 있는 건 여기까지이다. 이것들도 사실 내가 정리해놓은 함수표를 보고 뚱딱이는 정도이기 때문에, 내 수준이 아직 갈 길이 멀다는 것을 느낀다. 하지만 뭐 어떤가, SQL도 처음에 그랬는데. 결국 많이 해보고, 많이 익숙해져야만 할 수 있는게 아닐까?
오늘 발재한 판다스 개인과제를 2문제 풀어보았다. 역시나 버벅이면서 풀긴 했지만, 그래도 두 문제의 답을 구했다는 것에서 조금 만족감을 느낀다.
필수 1. 데이터 불러오기
- Python 라이브러리를 활용하여, 구글 드라이브의 CSV 파일을 DataFrame으로 읽어오는 코드를 작성해주세요.
- 테이블의 행과 열 개수를 확인해주세요.
- 테이블의 처음 5줄을 확인해주세요.
- 결과 제출형태: Library import 부분을 포함한 정답코드
import pandas as pd import numpy as np from datetime import datetime, timedelta from google.colab import drive drive.mount('/content/drive') df=pd.read_csv("/content/drive/MyDrive/Colab_Notebooks/flight_data_homework.csv”) df.shape df.iloc[[0,1,2,3,4],:]
먼저 판다, 님피 라이브러리 import를 비롯해 가져와야할 것들을 가져와야 한다. 문제를 푸는데 필요한 데이터프레임을 마운트해오기 위해 read_csv를 사용했다.
테이블의 행과 열 개수를 구하는 함수는, 이름 그대로 데이터프레임의 외관을 보여주는 shape이다. 처음 5줄을 확인하는 함수는, 내 기억으로는 shape처럼 보여주는 함수가 있었던 것 같은데, 일단은 내가 수동으로 가져올 컬럼과 인덱스의 수를 정할 수 있는 iloc 함수를 사용했다. 조금 무식한 방법이 아닌가 싶지만, 주어진 문제를 해결하기 위해서야 뭐...
필수 2. 결측치 처리
- 각 컬럼별 결측치 개수를 구해주세요.
- 결측치가 있는 행을 모두 제거해주세요.
- 결과 제출형태: Library import 부분을 포함한 정답코드
import pandas as pd import numpy as np from datetime import datetime, timedelta from google.colab import drive drive.mount('/content/drive') df.isnull().sum() df=df.drop(['Route'], axis=1) df=df.drop(['Total_Stops'], axis=1)
import 부분은 생략한다. 먼저 결측치를 확인하는 함수인 isnull().sum()를 사용했다. 결측치가 발생한 행은 Route와 total_stops이므로, 이 둘을 제거해주기 위해 drop을 사용했다. 개인적으로는 이 두 행을 한 줄로 제거할 수 있는 방법이 있으리라 믿는다. 다만 먼저 답을 내는 것에 집중하기 위해 두 코드를 따로 작성해줬지만, 다른 방법을 찾아봐야겠다.
코드카타와 동영상 강의는 TIL을 올린 뒤에 볼 예정이다. 우선은 세션 복습이 최우선이라고 생각해, 그거에 집중하기로 마음 먹었다.
오늘부터 노션 캘린더를 사용해 시간 단위의 계획을 세우기로 결심했다. 이제는 해야할 것이 너무 많아지면서, 시간을 단위별로 사용하지 않으면 지금 뭘 해야할지 헤매면서 낭비하는 시간이 너무 많기 때문이다.
이번주는 또 다른 한 주가 될 것이라 믿는다.