ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2024-02-28
    스파르타/TIL(Today I Learned) 2024. 2. 28. 23:22

    오늘은 우선적으로 SQL 코드카타 풀었던 것을 pandas로 풀어봤다(leetcode문제의 경우 pandas로도 풀 수 있게 되어있어서 코드카타 시트 77~126번에 해당하는 문제들이 가능할 것으로 생각된다)

    더보기

    pandas 문제풀기

     

    1757. Recyclable and Low Fat Products(pandas) (첫 leet코드의 SQL문제 pandas로 풀어본 것)

    Recyclable and Low Fat Products - LeetCode

    코드카타 기준77번

    저지방 y이고 재활용 y인 상품의 id를 출력하는 문제이다.

    # Write your MySQL query statement below
    SELECT pdt.product_id FROM Products pdt
    WHERE pdt.low_fats="Y" and pdt.recyclable= "Y";
    
    def find_products(products: pd.DataFrame) -> pd.DataFrame:
        result_df = products[(products['low_fats']=='y') & (products['recyclable']=='y')]
        return result_df
    

    처음에 괄호 안 쳐서 에러가 났었음

    def find_products(products: pd.DataFrame) -> pd.DataFrame:
        result_df = products[(products['low_fats']=='y') & (products['recyclable']=='y')]
        return result_df
    

    괄호 쳐주니 더 이상 에러는 안 일어남

    import pandas as pd
    
    def find_products(products: pd.DataFrame) -> pd.DataFrame:
        result_df = products[(products['low_fats']=='Y') & (products['recyclable']=='Y')]
        return result_df[['product_id']]
    

    우선 파이썬은 대소문자 구분해줘야하는데 결과가 빈값으로 나와서 확인해본 결과 값이 대문자인 것을 확인하고는 수정하였고 또 리턴할 때는 무조건 df형식으로 리턴해주도록 되어있는 것 같다 그냥 result_df[’product_id’] 이런 식으로 시리즈로 하니 에러가 났었다

    그리고 확인해본 결과 sql기록도 따로 남아있는 것 같음

    그런데 자동으로 github에 안 올라가는 것 같다 그래서 일단 해결방법 찾을 때까지는 손으로 올려야할듯

    recyclable-and-low-fat-products

     

    584. Find Customer Referee(pandas)

    Find Customer Referee - LeetCode

    코드카타 기준 78

    2를 추천하지 않은 사람들의 이름을 출력하는 문제이다

    import pandas as pd
    
    def find_customer_referee(customer: pd.DataFrame) -> pd.DataFrame:
        result_df = customer[(customer['referee_id']!=2) | (customer['referee_id'].isna())]
        return result_df[['name']]
    

    처음에 괄호 또 빼먹었다가 이상한 결과로 나왔다가 괄호를 추가해주니 정상적으로 되었다(referee_id가 2인 데이터만 출력되었었다)

    괄호를 빼먹으니 이번엔 에러가 나지 않았지만 |가 !=보다 우선순위가 높아서 그런 일이 발생한 것 같다

    find-customer-referee

     

    595. Big Countries(pandas)

    Big Countries - LeetCode

    코드카타 기준 79

    땅넓이가 300만이상이거나 인구가 2500만이상인 나라의 이름, 인구, 땅넓이를 출력하는 문제이다.

    import pandas as pd
    
    def big_countries(world: pd.DataFrame) -> pd.DataFrame:
        result_df = world[(world['area']>=3000000)|(world['population']>=25000000)]
        return result_df[['name','population','area']]
    

    big-countries

     

    블로그에서 바쁘거나해서 대강 적고 넘어간 부분들 내용 추가해서 수정해주었고

    ( 오늘 블로그 내용 부실하게 적은 부분 추가 수정해줬는데 동기화해두면 무조건 동기화부분 한번에 선택되서 동기화 할꺼면 이미지 추가 안하는게 좋을듯(이미지는 한번에 해서 복사하면 접근할 수 없는 이미지라고 에러나면서 여러 번 반복해서 나머지 글씨부분이 쓰여진다) )

    그리고 다른 분들 개인과제 어떤 식으로 했나 훑어봤고

    그 중 나중에 참고하면 좋을 것 같은 것은 노션에 따로 기록해 두었다

    그중에 팀원 분이 도넛차트를 다른 분들은 다 레이블을 도넛 바깥부분에 표시 시키셨는데 유일하게 도넛위에 표시 시키셨길래 여쭤봤는데 팀원분이 의도하신 게 아니였었다..

    그분도 본인이 어떻게 해서 저렇게 된지 모르셔서 내가 직접 그분 화면을 보면서 어떻게 한 것인지 파악하였는데

    아쉽게도 우연히 작은 파이차트의 레이블로 그려진 것인데 크기, 위치등이 절묘해서 저렇게 된 것

    →그래도 써먹을려면 써먹을 수 는 있을 것 같을 것 같아서 좋은 아이디어를 얻은 듯 했다

     

    그리고 지난 심화 프로젝트 녹화영상을 1채널 쪽 것을 우선 좀 봤는데 일부만봐서 아직은 적지 않도록 하겠다

     

    그리고 정현석 튜터님께 어제 말씀 드린대로 팀원분들과 함께가서 github로 협업 기록을 남기는 방식에 대하여 강의를 들었다

    더보기

    github 협업하는 법

     

    github 코드 올리고 상호작용 그와 관련해서 얘기 나누는 과정이 있는 것이 중요

    단순 코드 올리는 부분이 중요한 것이 아니라

    대화를 하는 내역 올리는 것

    표시는 자동으로 되는지?

    태스크 부여 데이터 전처리 : 아웃라이어 tiltle에 주제 설명에 요구 사항 적어주고 @써서 담당되는 분 호출 처음에 이슈를 미리 적어주기 add a comment 아웃라이어 제거한 파일은 url 여기에 있습니다 특이사항 뭐이고 결과 어떻게 나왔고 피드백 요청함

    이슈에서 만들어서 위 과정함

    <aside> ✅1. 커밋 유형 지정

    • 커밋 유형은 영어 대문자로 작성하기
    • 커밋 유형 의미 Feat 새로운 기능 추가 Fix 버그 수정 Docs 문서 수정 Style 코드 formatting, 세미콜론 누락, 코드 자체의 변경이 없는 경우 Refactor 코드 리팩토링 Test 테스트 코드, 리팩토링 테스트 코드 추가 Chore 패키지 매니저 수정, 그 외 기타 수정 ex) .gitignore Design CSS 등 사용자 UI 디자인 변경 Comment 필요한 주석 추가 및 변경 Rename 파일 또는 폴더 명을 수정하거나 옮기는 작업만인 경우 Remove 파일을 삭제하는 작업만 수행한 경우 !BREAKING CHANGE 커다란 API 변경의 경우 !HOTFIX 급하게 치명적인 버그를 고쳐야 하는 경우
    1. 제목과 본문을 빈행으로 분리
    • 커밋 유형 이후 제목과 본문은 한글로 작성하여 내용이 잘 전달될 수 있도록 할 것
    • 본문에는 변경한 내용과 이유 설명 (어떻게보다는 무엇 & 왜를 설명)
    1. 제목 첫 글자는 대문자로, 끝에는 . 금지4. 제목은 영문 기준 50자 이내로 할 것5. 자신의 코드가 직관적으로 바로 파악할 수 있다고 생각하지 말자6. 여러가지 항목이 있다면 글머리 기호를 통해 가독성 높이기
    - 변경 내용 1
    - 변경 내용 2
    - 변경 내용 3
    
    

     

     그외 따로 구글에 검색하여 찾은 블로그에 정리 해두신 내용들이다(내가 다시 정리해볼까 생각했는데 아직 잘 모르는데 예시로 보여줄 부분도 없고 하여 참고로 보았던 링크만 쭉 적어두고 나중에 시간이 되면 내가 다시 깔끔하게 정리를 하던지 해볼 예정이다)

    오늘은 중간에 개인적으로 은행 다녀올 일도 있고 다른 이전 같이 팀하셨던 분을 도와드리거나 현재 팀원 분들 git하는데 적응하도록 도와드리거나 하는 등의 일도 있고 뭔가 큰 일을 진행하기에는 체력적이나 시간적으로 애매해서 머뭇거리면서 하지 않다 보니 좀 여유롭게 하루를 보내버린 듯하다

    이전에 SQL로 풀었던 문제들이라 pandas로 푸는 것은 그리 어렵지 않을 것으로 보였다 하지만 조금 아쉬운 게 pandas로 풀어도 바로 git에 업로드 될 줄 알았는데 이미 SQL로 풀어서 그런지 pandas로 푼 것은 올라가지 않아 수동으로 파일 만들어서 작성해줘야해서 아쉬웠다

    그리고 다른 분들이 한 것을 확인해볼 수 있는 기회가 있어서 보고 그중 참고하면 좋을 만한 아이디어는 기록해둘 수 있어서 나중에 필요하면 기억해내서 사용할 수 있을 것 같다

    그리고 github로 협업하는 방식에 대해 배웠는데 issue라는 것을 위주로 협업의 흔적을 남길 수 있다는 것을 알아서 앞으로 적극적으로 활용하면 좋을 것으로 예상된다

    그리고 내일은 드디어 프로젝트 시작일이다 주제가 주어지면 최대한 빨리 주제를 정하되, 꼼꼼히 판단하여 정하도록 하는 것이 좋을 것 같다

    아 추가로 뺴먹었는데 오늘 팀원들과의 얘기 시간에는 ppt 도구?를 미리 캔버스를 이용해서 해보자고 건의드리고 대강 워크스페이스와 초대까지 진행해두었고, 또 주제를 정하는 방식을 내가 팀원들에게 건의한 내용인데 저번에 했던 것과 비슷하게 하여 주제별로 점수를 매겨 총점이 많은 것을 고르는 다수결에 점수화를 도입한 방식인데, 점수를 정말 하고 싶은 주제다 생각하는 점수에 10점(점수는 임의로 예시를 든 것이다), 이정도면 해도 괜찮지 않을까 하는 생각이 든다 하는 주제에는 4점 정도를, 하자면 하긴 하는데 별로 끌리진 않는 정도라는 주제에는 1점, 그렇게 하고 싶은 주제는 아니다 싶은 주제에는 0점을 부여하고 얘기하는 시간에는 깜박하고 얘기를 하지 못하였는데 이것은 하고 싶지 않다 생각되는 주제는 미리 ban을 해두어 가능하면 제외하거나 얘기를 통해 설득 등으로 합의로 조절하는 방식으로 하는 것에 다들 동의해주어 그렇게 정하게 될 것 같다

    '스파르타 > TIL(Today I Learned)' 카테고리의 다른 글

    2024-03-04  (1) 2024.03.05
    2024-02-29  (0) 2024.02.29
    2024-02-27  (0) 2024.02.27
    2024-02-26  (1) 2024.02.26
    2024-02-23(수정필요)  (0) 2024.02.24
Designed by Tistory.