ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 코드카타 / 파이썬 / pandas
    [스파르타코딩클럽]데이터분석 과정/TIL,WIL 2024. 2. 5. 20:48

    SQL 코드카타

    12세 이하인 여자 환자 목록 출력하기
    12세 이하인 여자 환자의 환자이름, 환자 번호, 성별코드,나이, 전화번호를 조회
    전화번호가 없는 경우 none으로 출력
    나이를 기준으로 내림차순, 나이가 같다면 환자 이름을 기준으로 오름차순

     

    • 12세 이하 : between 0 and 12
    • 여자 환자 : GEND_CD = 'W'
    • 전화 번호가 없는 경우 ->IFNULL
    • NONE -> (TLNO,"NONE")
    • 정렬 : ORDER BY
    • 내림차순 : DESC
    • 오름차순 : ASC
    SELECT PT_NAME, PT_NO, GEND_CD, AGE, IFNULL(TLNO, "NONE") TLNO
    FROM PATIENT
    WHERE AGE BETWEEN 0 AND 12 AND GEND_CD = 'W'
    ORDER BY AGE DESC, PT_NAME ASC;

     

    Biggest Single Number
    단일 숫자는 테이블에 한 번만 나타나는 숫자
    가장 큰 단일 숫자 찾기
    단일 번호가 없으면 신고

     

    • 가장 큰 : max
    • 숫자별로 : group by
    • 1번만 나타남 : count
    SELECT MAX(num) AS num
    FROM (
        SELECT num
        FROM MyNumbers
        GROUP BY num
        HAVING COUNT(num) = 1
    ) as unique_numbers;

     

    Average Population
    인구의 평균 구하기
    가까운 정수로 내림

     

    • 평균 구하기 : AVG
    • 내림 : round
    select round(avg(population))
    from city;

     


    파이썬 코드카타

    덧칠하기

    정수 n,m과 다시 페인트를 칠하기로 정한 구역들의 번호가 담긴 정수 배열 section이 매개변수로 주어질 때 롤러로 페인트칠해야 하는 최소 횟수를 return 하는 solution 함수

     

    • 빈 값이 아니라면 계속 실행 : while
    • 첫 값에 m 더하기 : section[0] + m
    • 첫 값 삭제 : pop
    def solution(n, m, section):
        answer = 0
        while section:
            #빈값이 아니라면 계속 실행
            #첫 값에 m 더하기
            b = section[0] + m
            #section 존재, 첫 값이 b보다 작다면 반복
            while section and section[0] < b:
                #첫 값 삭제
                section.pop(0)
            answer += 1
        return answer

     

    기사단원의 무기
    기사단원의 수를 나타내는 정수 number와
    이웃나라와 협약으로 정해진 공격력의 제한수치를 나타내는 정수 limit와
    제한수치를 초과한 기사가 사용할 무기의 공격력을 나타내는 정수 power가 주어졌을 때,
    무기점의 주인이 무기를 모두 만들기 위해 필요한 철의 무게를 return 하는 solution 함수

     

    • 약수 구하기 -> 제곱근보다 작은수 + 반쪽 + cnt +=2
    def solution(number, limit, power):
        answer = 0
        #철의 무게
        kg=[]
        #약수 구하기 -> 제곱근보다 작은 수 + 반쪽 + cnt += 2
        for i in range(1,number+1):
            cnt=0
            for j in range(1,int(i**0.5)+1):
                if(i%j==0):
                    cnt+=2
                    if j**2==i: cnt-=1
                if cnt>limit:
                    cnt=power
                    break
            kg.append(cnt)
        return sum(kg)

     


    파이썬

    • enumerate 

    - 반복문 사용 시 몇 번째 반복문인지 확인이 필요할 수 있음

    - 인덱스 번호와 컬렉션의 원소를 typle형태로 반환

    • replace

    - replace(바꿀 대상, 바꾸려는 문자열)

    - 문자열 바꾸기


    Pandas

    • 시각화
    line: 선그래프

    bar: 바 그래프

    barh: 수평 바 그래프

    hist: 히스토그램

    kde: 커널 밀도 그래프
    - 히스토그램과 유사하게 밀도를 보여주는 그래프
    - 히스토그램고 유사한 모양새를 갖춤
    - 부드러운 라인
    df['분양가'].plot(kind='kde')

    hexbin: 고밀도 산점도 그래프
    - 고밀도 산점도 그래프
    - x와 y키 값을 넣어주기
    - x,y 값 모두 numeric한 값을 넣어주기
    - 데이터의 밀도를 추
    df.plot(kind='hexbin', x='분양가', y='연도', gridsize=20)
    box: 박스 플롯

    - IQR : 3Q - 1Q * 1.5

    pie: 파이 그래프
    df.groupby('연도')['분양가'].count().plot(kind='pie')​

    scatter: 산점도 그래프
    - 점으로 데이터를 표기해 줌
    - x,y 값을 넣어줌
    - x축과 y축을 지정해주면 그에 맞는 데이터 분포도 볼 수 있음
    - numeric한 column만 지정

     

     

     

Designed by Tistory.