데이터분석 기초 | 열 호출 | 새로운 열 생성(.assign) | 열 삭제 (drop / inplace = True) | 동일한 데이터 타입 열 출력(select_dtypes) | 열 이름, 열 순서 변경 | 열 <> 인덱스 자리 바꿈 (transpose / .T)

    728x90

     

     

    1. 라이브러리 설치 후 데이터셋 불러오기

     

    ▶ 라이브러리 설치하기

    import pandas as pd
    import seaborn as sns

     

    ▶ 데이터셋 불러오기

    df = sns.load_dataset('penguins')
    df

     


    2. 열 호출하기

     

    2-1) 열 이름 출력하기

     

    ▶ df.columns

    : 현재 어떤 열이 있고, 이름은 무엇인지 알고 싶을 때 출력

     

    2-2) 단일 열 호출하기

     

    ▶ 방법1 : df['특정 열']

    df['species']

     

    ▶ 방법2 : df.species

    df.species

     

    2-3) 복수 열 호출하기

     

    방법1

     

     

    ▶ 방법2 : columns = 

    columns = ['species', 'bill_depth_mm'] 
    df[columns]

     


    3. 복수 열을 결합해서 데이터프레임 생성하기

     

    new_df = df[columns]
    new_df.head()
    new_df.tail()

     


    4. 새로운 열 생성하기

     

    ▶ 방법1 : df['특정 열'] = 

    df['bill_depth_cm'] = df['bill_depth_mm'] / 10
    df['bill_length_cm'] = df['bill_length_mm'] / 10
    
    df.head()

     

    ▶ 방법2 : df.assign()

    df.assign (
        bill_length_cm = df['bill_length_mm'] / 10,  
        bill_depth_cm = df['bill_depth_mm'] / 10
    )

     


    5. 동일한 데이터 타입의 열만 선택해서 출력하기

     

    ▶ df.info()로 데이터 타입 알아보기

     

    ▶ select_dtypes()

    : 데이터프레임의 여러 열 중 동일한 데이터타입의 열만 불러옴

     

    * 데이터타입이 float64 인 열 이름 출력

    df.select_dtypes(include=['float64']).columns

     

    * 데이터타입이 int64 인 열 이름 출력

    df.select_dtypes(include=['int64']).columns

    >> 이 데이터셋에는 int64 타입이 없음

     

    * 데이터타입이 object 인 열 이름 출력

    df.select_dtypes(include=['object']).columns

     

    * 데이터타입이 object 인 열 이름을 제외하고 출력

    df.select_dtypes(exclude=['object']).columns

     


    6. 열과 행 삭제하기

     

    ▶ drop()

    : 데이터프레임의 불필요한 열이나 행을 삭제할 때 사용하는 함수

    : drop() 함수를 별도의 변수에 저장해야 데이터를 다시 불러왔을 때 해당 열이 삭제된 것을 볼 수 있음.

     

    6-1) 열 삭제하기

     

    ▶ 단일 열 삭제하기

    df.drop('species', axis=1).head()

    : axis = 1은 세로(열)을 의미

     

    ▶ 복수 열 삭제하기

    df.drop(['species', 'flipper_length_mm'], axis=1).head()

     

    ▶ inplace = True

    : drop() 함수로 삭제 시에는 (별도의 '변수 = drop()' 에 저장하지 않는 한) 데이터프레임을 다시 불러왔을 때 해당 열이 삭제되지 않음.

    : 이 때 inplace = True를 사용하면 바로 기존의 데이터 프레임에 변경된 설정이 덮어쓰여짐. 

    df.drop('species', axis=1, inplace=True)

     

    6-2) 행 삭제하기

     

    ▶ drop( [리스트 형식으로 해당 인덱스 번호 입력] )

    df.drop([0, 3, 5, 7], axis=0).head()

    : axis = 0은 가로(행)을 의미

     


    7. 열 이름 변경하기

     

    ▶ rename()

    : rename() 함수의 매개변수 cloumns에 {기존 열 이름: 바꿀 열 이름} 형식으로 입력

    df.rename(columns={"species" : "펭귄 종류", "island" : "서식하는 섬", "bill_length_mm" : "부리 길이"}).head()

     

    ▶ df.columns = 

    : 9개의 열 이름을 모두 한글로 바꿔보기

    df.columns = ['펭귄 종류', '서식하는 섬', '부리 길이', '부리 깊이', '지느러미 길이', '몸무게', '성별', '부리깊이cm', '부리길이cm']

     


    8. 열 순서 / 위치 변경하기

     

    ▶ 데이터셋 다시 불러 와보기

    df = sns.load_dataset('penguins')  
    df

     

    ▶ 열 이름으로 순서 지정하기

     : 데이터프레임의 열 이름을 원하는 순서대로 재입력하면 열 순서가 변경됨

    df = df[['species', 'island', 'sex', 'bill_length_mm', 'bill_depth_mm', 'flipper_length_mm', 'body_mass_g']]
    df.head()

     

    ▶ columns 함수로 순서 지정하기

    df.columns = df.columns[[0, 1, 6, 5, 2, 3, 4]]
    df.head()

     

    ▶ for ~ in ~ 함수 이용하기

    cols_to_stay = ['bill_length_mm', 'bill_depth_mm', 'flipper_length_mm']
    cols = cols_to_stay + [col for col in df if col not in cols_to_stay]
    df = df[cols]
    df.head()
    cols = [col for col in df if col not in cols_to_stay] + cols_to_stay

     


    9. 열과 인덱스 전치하기(자리 바꾸기)

     

    ▶ transpose()

    : 열을 인덱스로 만들어야 하는 경우 판다스의 transpose() 함수 사용
    : 데이터프레임의 전체 인덱스를 일일이 입력하면 너무 길어서 슬라이싱 사용

    df = df[:11].transpose()   # [:11]로 하면 10개가 출력됨 (:출력할 개수+1)
    df

     

    ▶ .T

    : transpose() 함수를 . T로 줄여쓸 수 있음

    df[:11].T

    728x90

    댓글