데이터 프레임의 데이터 조작

    데이터 세기 ( count, value_counts )

    • count ( ) : 데이터 개수 세기.
    • value_counts ( ) : 각 종류별로 몇 개의 데이터가 있는지 세어주는 것.
    df.value_counts(subset = None, 
    		normalize = False, 
        		sort=True, 
        		ascending=False, 
        		dropna=True)
    속성 내용
    subset 기준으로 삼을 열 입니다. list형태로도 입력이 가능..
    normalize 갯수가 아니라 비율로 출력.
    sort 빈도 순서로 정렬할지 여부.기본값은 True입니다.
    ascending 오름차순으로 정렬할지 여부.
    dropna 결측치를 제외할지 여부.

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    데이터프레임 정렬

    sort_index ( )

    • 인덱스를 기준으로 레이블을 정렬하는 메서드.
    df.sort_index(axis=0,
    	    level = None, 
                ascending = True, 
                inplace = False, 
                kind = 'quicksort', 
                na_position = 'last', 
                sort_remaining = True, 
                ignore_index = False, 
                key = None)
    속성 내용
    axis {0 : index / 1: columns} 정렬할 레이블. 0 → 행 / 1 → 열 기준.
    level multi index의 경우 정렬을 진행할 level.
    ascending 오름차순으로할지 여부. (기본은 True로 오름차순)
    inplace 원본을 대체할지 여부. (True일 경우 원본을 대체)
    kind 알고리즘 모드 / 모드 -  quicksort, mergesort, heapsort, stable (속도와 효율성 차이)
    na_position  {first / last} Na값의 위치 (기본값은 last로 정렬시 맨 뒤)
    sort_remaining multi index의 경우 다른 레벨에 대해서도 정렬.
    ignore_index 인덱스의 무시 여부. True일 경우 인덱스의 순서와 상관없이 0,1,2,... 로 정함.

     

    sort_index( ) 예제

     

     

     

     

     

     

     

     

     

    sort_values ( )

    값을 기준으로 레이블을 정렬하는 메서드

    df.sort_values(by,
    	axis = 0, 
            ascending = True, 
            inplace = False, 
            kind = 'quicksort', 
            na_position = 'last', 
            ignore_index = False, 
            key = None)

     

     

    내림차순 정렬

    → s.sort_values(ascending = False)

     

     

     

     

     

    import seaborn as sns
    sns.get_dataset_names()

     

     

     

     

     

     

     

     

    Q. sort_values 메서드를 사용하여 타이타닉호 승객에 대해 
    성별(sex) 인원수, 나이별(age) 인원수, 
    선실별(class) 인원수, 사망/생존(alive) 인원수를 구하라.

    sort 함수 예제

     

     

     

     

     

     

     

     

     

     

     

     

    1. 타이타닉호 승객의 평균 나이를 구하라.
    2. 타이타닉호 승객중 여성 승객의 평균 나이를 구하라.
    3. 타이타닉호 승객중 1등실 선실의 여성 승객의 평균 나이를 구하라.

     

     

     

     

     

     

     

     

     

     apply ( )

    • DataFrame에 함수를 적용하여 반환하는 메서드
    df.apply(func, 
    	axis = 0, 
        	raw = False, 
        	result_type = None,
        	args = (),
       	kwargs)
    속성 내용
    function 각 행이나 열에 적용할 함수.
    axis {0 : Index / 1 : columns} 함수를 적용할 축.
    row {True : ndarray / False : Series} 함수에 전달할 축의 형식.
    result_type {expand / reduce / broadcast} 반환값의 형태를 결정.

     

    apply() 예제

     

     

     

     

     

     

     

     

     

     

    타이타닉호의 승객에 대해 나이와 성별에 의한 카테고리 열인 category1 열을 만들어라. category1 카테고리는 다음과 같이 정의된다.

    1. 20살이 넘으면 성별을 그대로 사용한다.
    2. 20살 미만이면 성별에 관계없이 “child”라고 한다.

     

     

     

     

     

     

     

     

     

     

     

     

    fillna ( ) 

    • DataFrame에서 결측값을 원하는 값으로 변경하는 메서드.
    df.fillna(value = None,
    	method = None, 
            axis = None, 
            inplace = False, 
            limit = None, 
            downcast = None)

     

     

     

     

     

    astype ( )

    • 열의 요소의 dtype을 변경하는 함수.

    astype() 예제

     

     

     

     

     

     

     

    타이타닉호의 승객에 대해 나이와 성별에 의한 카테고리 열인 category2 열을 만들어라.
    category2 카테고리는 다음과 같이 정의된다.

    1. 성별을 나타내는 문자열 male 또는 female로 시작한다.
    2. 성별을 나타내는 문자열 뒤에 나이를 나타내는 문자열이 온다.

    ex) 27살 남성은 → male27 값이 된다.

     

     

     

     

     

     

     

     

    구간 나누기

    pd.cut ( )

    • 같은 길이로 구간을 나눌 수 있음.
    • 구간의 길이 같게 할 수도 있고, 구간 안의 갯수를 같게 할 수 있음.
    • 구간을 나누는 기준점을 리스트로 만들어야 함.
      • 아래 예제에서는 1, 20, 30, 50, 70, 100 구간으로 list을 설정함!

     

    cut() 예제

     

     

     

    pd.qcut ( )

    • 데이터를 빈도수에 따라 나눌 때 사용하는 함수.
    pd.qcut(array, q, lables)

    quct 함수와 cut 함수와 다른 점은

    cut은 bins로 구역을 나눈다면 qcut에서는 q인자가 함.

     

    q 안에 양의 정수를 넣을 시

    정수의 개수만큼 구간을 생성하여 동일한 데이터 개수가 들어감.

    qcut() 예제

     

     

     

     

     

     

     

     

     

    데이터프레임 인덱스 조작  (인덱스 설정)

    set_index ( ) 

    DataFrame.set_index(keys,
    		drop=True,
            	append=False,
            	inplace=False)
    속성 내용
    keys 인덱스로 세팅하려는 열의 레이블.
    drop 인덱스로 세팅한 열을 DataFrame 내에서 삭제할지 여부.
    append 기존에 존재하던 인덱스를 삭제할지 여부.
    inplace 원본 객체를 변경할지 여부.

     

     

     

     

     

    데이터합성

    pd.merge ( )

    • 두 데이터프레임을 각 데이터에 존재하는 고유값(key)을 기준으로 병합할

     

     

     

     

     

     

     

     

     

     

     

     

     

     

    데이터 연결

    pd.concat()

    • 데이터프레임을 말그대로 물리적으로 이어 붙여주는 함수.

     

     

    피벗테이블

     

     

     

    'ABC 부트캠프 > 파이썬 라이브러리' 카테고리의 다른 글

    10일차 - Matplotlib, Seaborn  (0) 2023.04.10
    8일차 - Pandas 1  (0) 2023.03.27
    7일차 - Numpy 2  (0) 2023.03.23
    6일차 - Numpy 1  (0) 2023.03.21

    댓글