세조목

TIL(Today I Learned)7일차(23.12.06) 본문

데이터 분석 공부/TIL(Today I Learned)

TIL(Today I Learned)7일차(23.12.06)

세조목 2023. 12. 6. 21:25

 

1. SQL

1) 프로그래머스 40번 문제

https://eyeoftheworld1209.tistory.com/entry/TILToday-I-Learned6%EC%9D%BC%EC%B0%A8231205

 

TIL(Today I Learned)6일차(23.12.05)

1. SQL 1) 프로그래머스 30번 문제https://school.programmers.co.kr/learn/courses/30/lessons/151137 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록

eyeoftheworld1209.tistory.com

어제 학습했던 내용 중

where절에 like 조건 여러개 넣고싶다면 or 뒤에  컬럼명 like '% %'   를 반복 입력해줘야 한다.

 

라는 내용을 정리했습니다.

위의 경우는 특정 문자가 포함된 값을 찾고자 할 때이고,

특정 부분이 아닌 값 전체를 찾고자 할 때는 아래와 같이 코드를 작성하면 된다.

where name in ('Lucy', 'Ella', 'Pickle', 'Rogan', 'Sabrina', 'Mitty')

 

해당 내용은 프로그래머스 40번 문제에 나오는 내용이다.

https://school.programmers.co.kr/learn/courses/30/lessons/59046

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

1. PYTHON

금일은 PYTHON으로 데이터를 분석하는 다른 사례도 한번 찾아보고 싶어서

유튜브에서 '데싸노트'라는 이름으로 활동하고 있는 데이터 사이언티스트 분의 코드 뜯어보기 영상을 보면서 학습했다.

https://www.youtube.com/watch?v=u_X6a61KQNQ&list=PLiAj7UZkBNE76PizQ4pMqeWFTKdumkr-1&index=21&t=65s&ab_channel=%EB%8D%B0%EC%8B%B8%EB%85%B8%ED%8A%B8

 

1. drop 함수

    sf.drop(sf.columns[[0,2,3,15,17,18]], axis=1, inplace=True)
    drop함수는 기본적으로 행을 지워줌
    열을 지우려면 axis=1을 적어줘야함
    inplace=True 를 적어주지 않으면 지웠던 열이 다시 나타남

2. 데이터 타입 中 object

    Dtype이 object는 텍스트를 의미함

3. 숫자임에도 불구하고 Dtype이 object로 표시되는 이유는?

    sf.info( )를 했을때 신기한 점은 zindexvalue가 테이블에는 숫자로 입력되어있는데 Dtype은 텍스트였음
    왜그런고하니 , 때문에 문자로 인식되는 것이었음

    따라서 , 를 제거해주고 숫자로 바꿔줘야 함

 

  1) , 제거해주기

    → sf['zindexvalue'] = sf['zindexvalue'].str.replace(',', '')
         sf의 경우 DataFrame이 아닌 Series이기때문에 단순히 .replace( )만을 넣어줄 것이 아니라 .str도 함께 넣어줘야한다.

  2) Dtype 변경하기

    → sf['zindexvalue'] = pd.to_numeric(sf['zindexvalue'])

         object를 int로 바꾸기 위해서는 pd.to_numeric 함수를 사용한다.

4. 최대, 최소 값 구하기

    테이블명['컬럼명'].min( )
    테이블명['컬럼명'].max( )

5. 통계적 특성 확인

     → sf.describe( )
     * std = standard deviation(표준편차)

6. 시각화

    sf.hist(bins=50,figsize=(20,15))
    plt.show()
     * sf 테이블의 값들을 히스토그램으로 시각화하는데 막대기의 개수는 50개, 가로 세로 길이는 20, 15로
    or
    sf.plot(kind = "scatter", x="longitude", y="latitude", alpha=0.2)
    plt.show()
     * kind는 종류를, alpha 는 투명도를 의미함
    or
    sns.scatterplot(data = sf, x='longitude', y='latitude',alpha=0.3)
    plt.scatter(data = sf, x='longitude', y='latitude', alpha=0.8)

 

   seaborn 함수를 썼을때 차트의 색을 변경하기 위해서는 아래와 같이 코드를 입력하면 됨
    plt.figure(figsize=(10,7))
        sns.scatterplot(data = sf, x='longitude', y='latitude',alpha=0.3, hue = 'lastsoldprice', palette = plt.get_cmap('jet'))

7. 상관관계 체크

     → sf.corr()

8. 정렬

     → .sort_values
     corr_matrix['lastsoldprice'].sort_values(ascending=False)
     *  ascending=False 는 내림차순, True는 오름차순임

9. column간의 상관관계를 산점도로 표현하기(seaborn 함수 사용 時)

     → .PairGrid( )
    g = sns.PairGrid(sf[['lastsoldprice', 'finishedsqft','bathrooms','zindexvalue']])
    g.map(sns.scatterplot)

10. 특정 값이 몇 번 나왔는지 세아리기

     →  .value_counts( )
           sf['neighborhood'].value_counts( )

11. 특정하지 않은 값(=중복되지 않은 값)의 개수 구하기

     →  .nunique( )
           * .unique( )를 사용하면 모든 값들이 표시됨

12. 판다스 데이터 프레임 두 개를 붙이기

     →   pd.concat()
           pd.concat([freq, mean], axis = 1)
          만약 axis를 쓰지 않으면 mean 테이블이 freq테이블 아래로 붙음