인공지능 개발자 수다(유튜브 바로가기) 자세히보기

자격증

[빅데이터분석기사 실기] 함수 모음집 - 유형 1

Suya_03 2024. 5. 28. 00:20

목차

    반응형

    1. 시험 설명

    • 시험시간: 3시간 (180분)
    • 시험 유형 (총 6문제)
      • 제 1유형
        • 3문제 (각 10점, 총 30점)
        • 주제: 데이터 전처리
      • 제 2유형
        • 1문제 (40점)
        • 주제: 데이터 분석 (분류/회귀/비지도학습)
      • 제 3유형
        • 2문제 (각 15점, 30점)
        • 주제: 통계적 가설 검정

     

    2. 제 1유형

    2.0. 파이썬 (python)

    abs(x)  # x의 절댓값
    round(x, ndigits)  # x를 소수점 이하 ndigits 자리로 반올림
    max(a, b, c, ...)  # 입력값 중 최대값
    min(a, b, c, ...)  # 입력값 중 최소값
    sum(iterable)  # iterable의 모든 요소의 합
    pow(x, y)  # x의 y제곱 (x ** y와 동일)
    divmod(x, y)  # x를 y로 나눈 몫과 나머지를 튜플로 반환
    
    # 내장 함수로 제공되는 통계 메소드
    all(iterable)  # iterable의 모든 요소가 참(True)인지 검사
    any(iterable)  # iterable의 하나 이상의 요소가 참(True)인지 검사
    
    # 내장 함수로 제공되는 기타 메소드
    enumerate(iterable, start=0)  # iterable의 요소를 인덱스와 함께 반환
    filter(function, iterable)  # function의 조건을 만족하는 iterable의 요소를 반환
    map(function, iterable)  # function을 iterable의 모든 요소에 적용
    zip(*iterables)  # 여러 iterable의 요소를 병렬로 묶어서 반환

    2.1. 판다스(Pandas)

    • 데이터프레임 컬럼 형변환
    # 형변환
    df['컬럼이름'] = df['컬럼이름'].astype(str)
    df['컬럼이름'] = df['컬럼이름'].astype(int)
    df['컬럼이름'] = df['컬럼이름'].astype(float)
    df['컬럼이름'] = df['컬럼이름'].astype(bool)
    • groupby
    # group by
    df.groupby(by='컬럼이름').sum()
    df.groupby(by='컬럼이름').mean()
    df.groupby(by='컬럼이름').count() # NaN은 빼고 세어줌
    df.groupby(by='컬럼이름').size() # NaN도 세어줌
    df.groupby(by='컬럼이름').max()
    df.groupby(by='컬럼이름').min()
    df.groupby(by='컬럼이름').std()
    df.groupby(by='컬럼이름').var()
    df.groupby(by='컬럼이름').median() # 중앙값
    df.groupby(by='컬럼이름').first()
    df.groupby(by='컬럼이름').last()
    
    # 사용자 정의 함수
    df.groupby(by='컬럼이름').apply(lambda x: x.sum())
    
    # 여러 연산을 동시에
    df.groupby(by='컬럼이름').agg(['sum', 'mean', 'count'])

     

    • 데이터프레임 다루기
    # 데이터프레임 데이터 조작
    df.drop('col1', axis=1) # 'col1' 컬럼 삭제
    df.drop(0, axis=0) # 첫 번째 행 삭제
    df.rename(columns={'col1': 'new_col1'}) # 컬럼명 변경
    
    # 데이터프레임 결합
    pd.concat([df1, df2]) # 데이터프레임 연결 (행 기준)
    pd.concat([df1, df2], axis=1) # 데이터프레임 연결 (열 기준)
    pd.merge(df1, df2, left_on='key', right_on='key', how='left') # 키를 기준으로 데이터프레임 병합
    
    # 데이터프레임 결측치 처리
    df.isna() # 결측치 여부를 불린 값으로 출력
    df.dropna() # 결측치가 있는 행 제거
    df.dropna(subset=['col1', 'col2']) # 'col1'과 'col2' 컬럼에서 결측치가 있는 행만 제거
    
    df['컬럼이름'] = df['컬럼이름'].fillna(0)
    df['컬럼이름'] = df['컬럼이름'].fillna(method='ffill')
    df['컬럼이름'] = df['컬럼이름'].fillna(method='bfill')
    
    # 데이터프레임 정렬
    df.sort_values(by='col1') # 'col1' 컬럼 기준으로 정렬
    df.sort_index() # 인덱스 기준으로 정렬
    
    # 데이터프레임에서 중복 제거
    df.drop_duplicates() # 중복 행 제거
    df.drop_duplicates(subset=['col1']) # 'col1' 컬럼 기준으로 중복 행 제거

     

    • 통계 연산
    # 기본 통계 함수
    df.mean() # 각 컬럼의 평균 계산
    df.median() # 각 컬럼의 중앙값 계산
    df.mode() # 각 컬럼의 최빈값 계산
    df.std() # 각 컬럼의 표준편차 계산
    df.var() # 각 컬럼의 분산 계산
    df.min() # 각 컬럼의 최솟값 계산
    df.max() # 각 컬럼의 최댓값 계산
    
    # 누적 통계 함수
    df.cumsum() # 각 컬럼의 누적합 계산
    df.cumprod() # 각 컬럼의 누적곱 계산
    df.cummax() # 각 컬럼의 누적 최댓값 계산
    df.cummin() # 각 컬럼의 누적 최솟값 계산
    
    # 상관관계 및 공분산
    df.corr() # 컬럼 간의 상관계수 계산
    df.corrwith(df2) # 다른 데이터프레임과의 상관계수 계산
    df.cov() # 컬럼 간의 공분산 계산
    
    # 데이터프레임 요약 통계
    df.describe() # 데이터프레임의 통계 요약 정보 출력
    
    # 특정 통계 연산
    df['col1'].mean() # 특정 컬럼의 평균 계산
    df['col1'].std() # 특정 컬럼의 표준편차 계산
    df['col1'].quantile(0.25) # 특정 컬럼의 1사분위수 계산
    df['col1'].quantile(0.5) # 특정 컬럼의 중앙값 (2사분위수) 계산
    df['col1'].quantile(0.75) # 특정 컬럼의 3사분위수 계산
    
    # 지수 이동 통계
    df.rolling(window=3).mean() # 3개 행 기준 이동 평균 계산
    df.rolling(window=3).sum() # 3개 행 기준 이동 합계 계산
    df.ewm(span=3).mean() # 지수 가중 이동 평균 계산
    
    # 변동성 측정
    df.pct_change() # 각 행의 퍼센트 변화율 계산
    df.diff() # 각 행의 차분 계산

     

    • 시계열
    # 단순 이동 평균 계산 (window=3, 이동거리)
    df['SMA'] = df['value'].rolling(window=3).mean()
    
    # 지수 가중 이동 평균 계산
    # span: 가중치를 계산할 때 사용할 기간의 길이, 값이 작을수록 최근 데이터에 더 큰 가중치를 부여)
    # adjust: 초기 값을 고려하여 가중치를 조정할지 여부를 결정
    df['EMA'] = df['value'].ewm(span=3, adjust=False).mean()
    print(df)

    2.2. 넘파이 (Numpy)

    • 연산
    import numpy as np
    
    # 기본 연산 함수
    
    # 덧셈 및 뺄셈
    np.add(x1, x2)         # 요소별 덧셈
    np.subtract(x1, x2)    # 요소별 뺄셈
    
    # 곱셈 및 나눗셈
    np.multiply(x1, x2)    # 요소별 곱셈
    np.divide(x1, x2)      # 요소별 나눗셈
    np.dot(a, b)           # 행렬 곱셈 또는 내적(dot product)
    
    # 멱승 및 제곱근
    np.power(x1, x2)       # 요소별 멱승
    np.sqrt(x)             # 요소별 제곱근
    
    # 절댓값 및 부호
    np.abs(x)              # 요소별 절댓값
    np.sign(x)             # 요소별 부호 (양수는 1, 음수는 -1, 0은 0)
    
    # 통계 함수
    
    # 최대값 및 최소값
    np.max(a, axis=None)   # 최대값
    np.min(a, axis=None)   # 최소값
    
    # 합계 및 평균
    np.sum(a, axis=None)   # 합계
    np.mean(a, axis=None)  # 평균
    
    # 중앙값 및 표준편차
    np.median(a, axis=None)  # 중앙값
    np.std(a, axis=None)     # 표준편차
    np.var(a, axis=None)     # 분산
    
    # 누적 합계 및 누적 곱
    np.cumsum(a, axis=None)  # 누적 합계
    np.cumprod(a, axis=None) # 누적 곱
    
    # 기타 연산 함수
    
    # 삼각 함수
    np.sin(x)   # 사인
    np.cos(x)   # 코사인
    np.tan(x)   # 탄젠트
    
    # 역삼각 함수
    np.arcsin(x)  # 아크사인
    np.arccos(x)  # 아크코사인
    np.arctan(x)  # 아크탄젠트
    
    # 지수 및 로그 함수
    np.exp(x)     # 자연 지수 함수 (e^x)
    np.log(x)     # 자연 로그
    np.log10(x)   # 상용 로그 (밑이 10)
    np.log2(x)    # 이진 로그 (밑이 2)
    
    # 반올림 및 절사
    np.round(x, decimals=0)  # 소수점 반올림
    np.floor(x)              # 소수점 내림 (버림)
    np.ceil(x)               # 소수점 올림
    
    # 배열 정렬 및 검색
    np.sort(a, axis=-1)    # 배열 정렬
    np.argsort(a, axis=-1) # 정렬된 요소의 인덱스
    np.argmax(a, axis=None) # 최대값의 인덱스
    np.argmin(a, axis=None) # 최소값의 인덱스

     

    2.3. Matplotlib

    • 히스토그램
    import matplotlib.pyplot as plt
    
    # 히스토그램
    plt.hist(df['수치형변수'])
    plt.show()

     

    • 박스플랏(botplot)
    # 타겟이 0일때와 1일 때 비교
    
    serise0 = df[df['타겟'] == 0]['수치형변수']
    serise1 = df[df['타겟'] == 1]['수치형변수']
    
    plt.boxplot(serise0, serise1)
    plt.show()

     

    2.4. scipy

    import scipy.stats as ss
    
    # 통계
    ss.zscore(df['컬럼이름']) # z-score
    ss.skew(df['컬럼이름']) # 왜도
    ss.kurtosis(df['컬럼이름']) # 첨도

    2.5. sklearn

    • 스케일러
    # 전처리 도구 모음
    from sklearn.preprocessing import StandardScaler
    from sklearn.preprocessing import MinMaxScaler
    from sklearn.preprocessing import Normalizer
    
    # 스케일러 사용
    scaler = StandardScaler()
    arr_data = scaler.fit_transform(df['컬럼이름'])
    • 차원축소
    from sklearn.decomposition import PCA
    
    pca = PCA(n_components=3)
    arr_data = pca.fit_transform(df) # np.array() 형태임

     

      •  라벨인코더
    from sklearn.preprocessing import LabelEncoder
    
    encoder = LabelEncoder()
    df['A'] = encoder.fit_transform(df['A'])

     

    • 원핫인코더
    from sklearn.preprocessing import OneHotEncoder
    
    encoder = OneHotEncoder(sparse=False)
    encoded_data = encoder.fit_transform(df['A'])
    columns = encoder.get_feature_names_out(['A'])
    
    encoded_df = pd.DataFrame(encoded_data, columns=columns)
    
    # 원본 데이터와 인코딩된 데이터를 합치기
    result_df = pd.concat([df, encoded_df], axis=1)

     

    endoded_df = pd.get_dummeies(df['A'])
    
    df = pd.concat([df, endoded_df], axis=1)

     

    3. 제 2유형

    다음에 작성...

     

    반응형

    '자격증' 카테고리의 다른 글

    [빅데이터분석기사 실기] 함수 모음집 - 유형 2  (0) 2024.05.30