[Aiffel] 아이펠 45일차 정리 및 회고

Gongsam·2022년 3월 10일
0

1. 정리

1) 오류

  1. too many values to unpack (expected 2)
  • for i, y in dict여서 오류
  • dict.item()로 바꿔서 해결
  1. range step에서 float 사용 불가능
  • numpy.arange에서 사용 가능하므로 np를 쓰고 to_list() 하기

2) 참고

  1. 특정 열의 값 변경하기: apply
  2. 멀티인덱싱..
    • 풀어줄 때 reset_index() 사용, inplace=True 잊지 않기
  3. df.loc[:,['NAME','GENDER']]
    • loc[row, column] 순서로 써줌
    • 열 이름을 사용해야함
  4. df.iloc[:, 0:4]
    • loc과 순서는 같음
    • 숫자로 인덱싱
  5. split() 할 땐 띄어쓰기까지 잘 보자. ','만 하면 데이터 누락된다.
  6. concat으로 합칠 때 axis=1 해야 옆으로 추가됨

2. 회고

헤맸어도 결국엔 생각한 대로 잘 돼서 뭔가 뿌듯했다.

사실 앞에서 막힌 부분이 있었는데 분기 형식이 'Q1 - 2018' 이런 식이라 분기를 기준으로 정렬하면 Q1 - 2018, Q1 - 2019, Q1 - 2020 이런 식으로 정렬이 됐다. 근데 그것도 모르고 그냥 그래프 그리고 있었다. 뭔가 이상한 걸 뒤늦게 알아차려서 Q1 - 2018, Q2 - 2018, Q3 - 2018 이런 식으로 바꾸려고 split 도 쓰고 했는데 생각처럼 잘 되지 않았다. 그래도 굴하지 않고 이 형태를 유지하면서 해보려다가 갑자기 든 생각이 그냥 2020 - Q1 과 같은 형태로 바꾸면 쉽게 정렬이 되겠다는 거였다. 그래서 원본 데이터에서 분류해놨던 걸 위와 같은 형식으로 바꾸고, revenue 데이터의 인덱스도 2020 - Q1과 같은 형식으로 바꾼 후 정렬했더니 원하는 대로 깔끔하게 됐다. 그냥 진즉에 이럴 걸 그랬다. 함수로 해결 안될 땐 데이터 자체를 바꾸는 것도 방법이다.

그리고 불러온 데이터나 마음대로 값을 추가하거나 바꾼 데이터가 많아서 인덱스가 바뀌기도 하고 그랬는데 이래서 변수명이 중요하구나를 깨달았다. 다음엔 변수를 따로 정리하면서 해봐도 좋을 거 같다.

마지막으로 장르가 수익성에 어떤 영향을 끼쳤을지 보기 위해 복합 장르를 모두 분리해 새로운 열로 생성하고, 그렇게 만든 열의 분기별 합을 구해 상관관계를 파악했다. 다만 이건 어떤 장르가 업로드된 수와 수익성 간의 관계이기 때문에, 특정 장르가 많은 수 업로드 되었다고 해서 사람들이 그 장르를 많이 봤다거나 그 장르를 보기 위해 가입한 사람이 늘었을 것이다하는 주장을 하기 위해선 좀 더 근거가 필요하다고 생각한다. 장르와 수익 사이의 관계를 파악한 뒤엔 비슷한 방식으로 나이 사이의 관계를 파악했고, 그 뒤엔 수익성과의 관련이 높다고 나온 장르를 추려 따로 데이터프레임으로 저장해두었다. 이걸 실제 평점과 연관지어서도 분석해볼 수 있을 것이다.

EDA라는 건 멀게만 느껴지고 캐글에 올라온 모범답안을 내 식대로 바꾸는 정도만 할 수 있을 거라고 생각했는데, 정작 해보니까 오류를 해결하면서 기존의 데이터에서 내 관점대로 데이터를 추출하는 것이 재밌었다.

profile
🐬 파이썬 / 인공지능 / 머신러닝

0개의 댓글