데이터 분석가:Applied Data Analytics/판다스 데이터분석

데이터 정제 과정에서 사용하는 Pandas 메소드

데이터분석 2025. 2. 18. 18:59
320x100
728x90

1. 데이터 확인 및 기본 통계

 .head() / .tail()

  • 데이터의 처음(head()) 또는 마지막(tail()) 몇 개의 행을 확인하는 메소드.
  • 예시
     
    df.head(5) # 상위 5개 행 출력
    df.tail(3) # 하위 3개 행 출력
  • 활용
    • 데이터의 기본 구조 및 최근 데이터를 빠르게 확인.

 .describe()

  • 데이터의 기본적인 통계 정보(평균, 표준편차, 최소·최대값 등)를 요약하여 제공.
  • 예시
     
    df.describe()
  • 활용
    • 데이터의 분포를 빠르게 파악하고, 이상치를 탐색.

 .value_counts()

  • 범주형 데이터의 각 값이 몇 번 등장했는지 계산.
  • 예시
     
    df['gender'].value_counts()
  • 활용
    • 성별, 카테고리 등 그룹별 빈도 분석.

 .nunique() / .unique()

  • nunique(): 고유값 개수 확인
     
    df['category'].nunique()
  • unique(): 고유값 리스트 출력
     
    df['category'].unique()
  • 활용
    • 데이터가 얼마나 다양한 값을 포함하는지 확인.

2. 결측치 처리

 .isna() / .isna().sum()

  • 결측치(NaN) 여부 확인 및 개수 세기.
  • 예시
     
    df.isna().sum()
  • 활용
    • 어떤 열에 결측치가 많은지 확인 후 처리 방법 결정.

 .dropna()

  • 결측치가 포함된 행 제거
  • 예시
     
    df_clean = df.dropna()
  • 활용
    • 결측치가 많은 행을 제거하여 데이터 품질 개선.

 .fillna()

  • 결측치를 특정 값으로 대체
  • 예시
     
    df.fillna(0) # NaN을 0으로 채우기
    df['age'].fillna(df['age'].median()) # 중위수로 채우기
  • 활용
    • 결측값을 평균, 중위수, 특정 값 등으로 채워 분석 가능하도록 만듦.

3. 데이터 변환 및 조작

 .astype()

  • 데이터 타입 변환 (int, float, str 등)
  • 예시
     
    df['age'] = df['age'].astype(int)
  • 활용
    • 숫자로 저장된 문자열을 실제 숫자로 변환하여 연산 가능하도록 만듦.

 .replace()

  • 특정 값을 다른 값으로 변경.
  • 예시
     
    df['gender'].replace({'M': 'Male', 'F': 'Female'}, inplace=True)
  • 활용
    • 카테고리 값의 이름을 보다 직관적으로 변경.

 .map()

  • 특정 컬럼의 값을 매핑하여 변환.
  • 예시
     
    df['category'] = df['category'].map({'A': 1, 'B': 2, 'C': 3})
  • 활용
    • 범주형 데이터를 숫자로 변환하여 분석 가능하도록 만듦.

 .apply()

  • 사용자 정의 함수를 각 행/열에 적용
  • 예시
     
    df['age_group'] = df['age'].apply(lambda x: 'adult' if x >= 18 else 'child')
  • 활용
    • 조건에 따라 데이터를 가공하거나 새로운 컬럼 생성.

 .str.split(expand=True)

  • 문자열을 특정 기준으로 분리하여 여러 개의 컬럼으로 변환.
  • 예시
     
    df[['first_name', 'last_name']] = df['full_name'].str.split(" ", expand=True)
  • 활용
    • 이름, 주소 등의 데이터를 여러 개의 컬럼으로 나누어 분석 가능하게 함.

4. 데이터 정렬 및 중복 제거

 .sort_values()

  • 특정 열을 기준으로 정렬.
  • 예시
     
    df.sort_values(by='score', ascending=False) # 점수 기준 내림차순 정렬
  • 활용
    • 가장 높은 점수/낮은 점수를 찾거나, 순위를 정할 때 사용.

 .duplicated() / .drop_duplicates()

  • 중복된 행 찾기 및 제거
  • 예시
     
    df.duplicated().sum() # 중복된 행 개수 확인
    df.drop_duplicates(inplace=True) # 중복 제거
  • 활용
    • 중복 데이터로 인해 발생하는 오류를 방지.

5. 데이터 합치기

 .concat()

  • 여러 개의 DataFrame을 위/아래 또는 좌/우로 결합
  • 예시
     
    df_combined = pd.concat([df1, df2], axis=0) # 세로로 결합
    df_combined = pd.concat([df1, df2], axis=1) # 가로로 결합
  • 활용
    • 여러 개의 데이터를 하나로 합쳐 분석 가능하도록 만듦.

 .merge()

  • 두 개의 DataFrame을 특정 공통 열을 기준으로 병합
  • 예시
     
    df_merged = df1.merge(df2, on='customer_id', how='inner') # 고객 ID 기준으로 병합
  • 활용
    • 다른 데이터셋을 조인하여 필요한 정보를 통합.

6. 그룹화 및 통계 분석

.groupby().agg()

  • 특정 기준으로 데이터를 그룹화하여 집계.
  • 예시
     
    df.groupby('gender')['salary'].mean() # 성별별 평균 급여 계산
    df.groupby('category').agg({'sales': 'sum', 'profit': 'mean'}) # 그룹별 매출 합계 및 평균 수익 계산
  • 활용
    • 특정 기준(예: 성별, 직업, 지역 등)으로 데이터를 요약 분석.

 .corr()

  • 변수 간 상관관계 계산
  • 예시
     
    df.corr()
  • 활용
    • 데이터 간 관계를 분석하여 예측 모델 개선.