[AI 온라인 교육] 데이터 조작 및 분석을 위한 Pandas 심화

데이터프레임 정렬하기
1. Index 값 기준으로 정렬하기

  • axis = 0 : 행 인덱스 기준 정렬 (Default 오름차순)

  • axis - 1 : 열 인덱스 기준 정렬

  • ascending = True : 오름차순, ascending = False: 내림차순

    df = df.sort_index(axis = 0)
    df = df.sort_index(axis = 1, ascending = False)

  1. Column값 기준으로 정렬하기
    df = df.sort_values('col1', ascending = True)

    → col1 컬럼 기준 정렬 (Default 오름차순)

    df = df.sort_values(['col2', 'col1'], ascending = [True, False])

    → col2 컬럼 기준 오름차순 정렬 후 col1 컬럼 기준 내림차순 정렬


데이터프레임 분석용 함수

  • count : 데이터 개수 확인 (Default: Nan값 제외)

  • max, min : 최대, 최소값 확인 가능 (Default:열 기준, Nan값 제외)

  • sum, mean : 합계 및 평균 계산 (Default:열 기준, Nan값 제외)
    → axis : 행, 열 기준 // skipna : True (NaN 무시) / False (NaN 포함)


    🌕 NaN값이 존재하는 column의 평균을 구하여 NaN값으로 대체하기

    ... 
    B_avg = df['math'].mean()
    df['math'] = df['math'].fillna(B_avg)
    df.mean(axis = 1, skipna = False

그룹으로 묶기

  • group by : 조건부로 집계하고 싶은 경우

    df = pd.DataFrame({'data1' : range(6),
    'data2': [4,4,6,0,6,1],
    'key':['A','B','C','A','B','C']})
    df.groupby('key').sum()
    df.groupby(['key','data1']).sum()
    
  • aggregate : groupby를 통해서 집계를 한번에 계산하는 방법

    df.groupby('key').aggregate(['min', np.median, max])
    df.groupby('key').aggregate({'data1':'min', 'data2': np.sum})
  • filter : groupby를 통해서 그룹 속성을 기준으로 데이터 필터링

    def filter_by_mean(x):
    	return x['data2'].mean() >3
    df.groupby('key').mean()
    df.groupby('key').filter(filter_by_mean)
  • apply.lambda : groupby를 통해서 묶인 데이터에 함수적용

    df.groupby('key').apply(lambda x: x.max() - x.min())
  • get_group: groupby로 묶인 데이터레엇 key값으로 데이터를 가져올 수 있다.

    df.read_csv("./univ.csv")
    # 상위 5개 데이터
    df.head()
    ## 데이터 추출
    df.groupby("시도").ger_group("충남")
    len(df.groupby("시도").ger_group("충남")) # 개수

좋은 웹페이지 즐겨찾기