오늘은 심화프로젝트 발제를 시작으로 하루를 시작했다.
심화프로젝트는 튜터들이 미리 선정해놓은 주제를 놓고 선택하는데, 우리팀은 GA4 로그데이터로 프로덕트 분석을 하는 주제로 선정했다.

처음 데이터를 가져오는 것부터 만만치 않았는데 팀원이 방법을 찾아와서 해결하고 데이터를 vscode에 우겨넣어봤다.

지금까지 만져본 데이터 중에 가장 양이 많았던 것 같다.
약 90만개였으니까, 보통 학습할 때보단 코드 실행속도가 조금씩 쳐지기 시작했다. 콤퓨타를 탓할 순 없음...

학습하며 배운대로 데이터 불러오기, .head()로 확인하고 .info()로, .describe()로 막 보기시작했다.

날짜 데이터가 int로 들어가 있길래 괜히 datetime으로 바꿔보기도 했다.

그러던 중에 4개 컬럼에서 딕셔너리 형태로 들어가 있었는데, 해당 컬럼들을 우리 팀원이 모두 뽑아서 개별 컬럼으로 확장하였다.

그렇게 새롭게 csv파일을 가지고 데이터를 보았고, 저녁에 모든 컬럼 중에 데이터를 쓸만한지 체크하기 위해 팀원들과 회의를 했고, 딕셔너리 컬럼을 해결해준 팀원이 머신러닝 경험이 있어서 인지, 사용할 데이터와 전처리 후 사용해야할 데이터, 제외해도 될 데이터들을 주도적으로 잡아 나갔다.

내일은 오전에 컬럼 정의부터 마무리하고 최종 데이터셋을 가지고 EDA를 해보고 가설들을 생각해볼 수 있을 것 같다.

직접 많은 작업들을 해보고 싶었는데, 팀원이 딕셔너리 컬럼을 확장하는 과정을 설명해주니 내가 아직 몰라서 사용하지 못하는 방법들도 있는 것 같다.
이번 기회에 데이터 전처리 과정에서 써야할 코드들을 기억하고 작성해야할 것 같다.

오늘 배운 코드

  1. 속성값이 딕셔너리이고 너무 긴 값들을 가지고 있을 때, 어떻게 펼쳐서 볼까요?
  • pd.set_option('display.max_colwidth', 1000)
    -> max_ 뒤에 rows, columns, colwidth처럼 행, 열, 열길이를 뒤에 숫자로 제한하여 늘려줄 수 있다. 숫자를 None으로 넣으면 끝까지 모두 보인다.
  • to_frame()
    -> Series 데이터를 데이터프레임처럼 볼 수 있도록 해준다.
  1. 날짜데이터로 변환
    date 라는 컬럼이 int로 설정되어 있었다.
    예전부터 자꾸 pd.to_datetime('date', format='%Y-%m-%d')가 먹히지를 않던데 이번에 찾아보면서 apply함수를 사용해서 데이터 타입으로 바꾸어 주었고, 날짜형식이 앞이 년도인지 일인지 구분을 해야하는 경우가 있었는데 이걸 해결해주는 옵션도 찾았다.

    -> 변환할 컬럼에 apply함수를 적용하고 그 함수를 lambda를 통해서 date컬럼 속의 개별인자들을 불러와서 str(문자)화 시켜주고 이걸 pd.to_datetime으로 변경해주는데 여기서!
    format 옵션에 mixed 로 자동 판단할 수 있도록 해주고 이 놈이 실수할 수 있으니 옵션으로 년도가 앞인지 월이 앞인지 yearfirst=True 혹은 dayfirst=True를 함께 써주도록 한다. 이 정보는 Pandas datetime Docs를 참고했다 :)
profile
Data analyst를 향해 도전하는 이야기

0개의 댓글