본문 바로가기
  • 달려가보자고~!
개발공부/Python

ABBBA조 추천시스템 프로젝트 (2)

by 도전왕 2022. 11. 3.
  • 오늘도 나는 머신러닝파트를 맡아 하고있다. 다른 팀원분들은 후딱후딱 drf쪽을 해내며 진척을 보이고 있는데 나는 아직 제자리인데다가 걸음마도 못 땐 기분이었다. 애초에 데이터셋도 없어서 다른 데이터셋을 만들어서 하나하나 고쳐서 테스트 환경부터 만들어야했다. 원하는 값을 얻어내기위해 필드도 새로 추가하고, 코드도 새로 작성하는 등의 노력은 있었다. 그래서 원하는 값들을 얻을 수는 있었다.  그후 크롤링한 데이터가 json파일에 저장이 되어서 그것을 csv파일로 옮겨 머신러닝 구동 환경을 만들어야만 했고 하는 중이다.

  • 그런데도 많은 오류가 발생하였지만 자잘한 오류들(금방 해결한 오류들)은 제외하고 큼직한거 위주로 작성하고자 한다.

 

  • 첫번째 오류 발생
    - 추천시스템 AI?에서 오류가 많이 발생했었다. mbti필드를 추가하여 데이터를 같이 뽑아보려하니 구동이 계속 안되는 것이다. 그래서 구글링을 한참 하였다. 어떤 순서로 뽑아야하는지, 어떻게 정렬시켜야 하는지, 어떤 값들을 뽑아야하는지 등 하나씩 지정해야만 했다. 그래서 하나씩 해나가다보니 여차저차 해결하였다. 마지막 사진의 by의 해결방식은 아래의 사진 참고.

 


       - 오류 해결 : by='userId' 값을 넣어서 정렬하는 기준을 만들어준다. 

 

  • 두번째 오류 발생
json.decoder.JSONDecodeError: Expecting value: line 2 column 2 (char 0)


       - 해당 오류를 발견하고 고쳐보려 온갖 노력을 다하였으나 역부족이었던 것 같다. 구글링을 통해 알아본결과

user_id = json.loads(params['user_id']) => user_id = params.get('user_id')


       - 이런 식으로 해보라는 등의 해결방안이 있었으나 나아지지 않았다. 그래서 그냥 전체를 갈아엎었다. 여러가지 시도를 하고 조언을 받아 해당부분의 코드들을 구현하는 것에 성공하였다.

 

  • 여러가지 필드를 추가하다가 문득 생각난 것이 ManyToMany인 필드로 이루어진 데이터베이스 테이블에 필드명을 새로 하나 추가할 수 있는 지에 대해 여러 토의를 하고 구글링한 결과 하는 방법이 있었다. 우리팀은 좋아요를 1, 0으로 치환하여 값을 구하고자 하였기때문에 매우 필요한 작업이었는데 팀원분께서 해결하셨다. 해당 링크는 이를 설명하는 사이트이다.
    https://lee-seul.github.io/django/2019/02/21/django-extend-manytomanyfield.html
 

Django ManyToManyField 확장하기

...

lee-seul.github.io

 


 

  • 참고

https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.pivot_table.html

 

pandas.pivot_table — pandas 1.5.1 documentation

This only applies if any of the groupers are Categoricals. If True: only show observed values for categorical groupers. If False: show all values for categorical groupers. Changed in version 0.25.0.

pandas.pydata.org

 

https://bigdaheta.tistory.com/44

 

[pandas] 4. 데이터 정렬 (sort_values, sort_index, by, ascending)

01. 데이터 값을 기준으로 데이터 정렬 : sort_values( ) 〰️ sort_values( ) 사용 방법 import pandas as pd df1 = pd.read_csv('파일명') df1.head() 먼저 판다스(pandas) 라이브러리를 임포트(import)하고, 사용할 데이터

bigdaheta.tistory.com

 

https://velog.io/@nikevapormax/csv-json-%EB%8D%B0%EC%9D%B4%ED%84%B0%EB%A5%BC-%EC%9E%A5%EA%B3%A0-db%EC%97%90-%EB%84%A3%EA%B8%B0

 

csv, json 데이터를 장고 db에 넣기

😂 Django Project 😭 프로젝트 세팅 - csv file 준비 다음과 같은 내용의 파일을 준비하였다. 강의에서 사용된 파일과의 다른 점은 tag의 각 요소에 따옴표가 없다는 점이다. - django project 생성 django pro

velog.io

 

https://www.geeksforgeeks.org/convert-json-to-csv-in-python/

 

Convert JSON to CSV in Python - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

https://seohyunc.tistory.com/3

 

[Python] json 파일을 csv 파일로 변환하기

json 파일은 아래와 같이 저장되어 있다. [ {"title": "Oh Boy", "songId": "30179107", "artist": "AOA", "img": "aaa.jpg"}, {"title": "With ELVIS", "songId": "30179108", "artist": "AOA", "img": "bbb.jpg"}, {"title": "Good Luck", "songId": "8181755

seohyunc.tistory.com

 

https://fierycoding.tistory.com/64

 

[MySQL, Django]csv 파일 DB에 밀어넣기 (bulk_create)

위코드 2주차에는 스타벅스 메뉴와 상품들에 대한 정보를 Django를 통해 MySQL DB에 저장하는 과정에 대해 배웁니다. 안내되어 있기로는 python shell을 사용하라고 되어 있긴 한데... 하나하나 넣기에

fierycoding.tistory.com

 

댓글