ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 파이썬 기초 : Pandas(판다스) DataFrame과 Series, 빌트인 함수
    🐍 Python 2025. 1. 21. 17:41
    728x90

    Pandas란?

    Pandas는 Python에서 데이터 분석과 조작을 위한 가장 인기 있는 라이브러리 중 하나입니다.
    데이터 처리를 단순화하고 효율적으로 수행할 수 있도록 설계된 도구로, **표 형식의 데이터(스프레드시트처럼)**를 다루기에 최적화되어 있습니다.
    주로 DataFrame과 Series라는 두 가지 주요 데이터 구조를 기반으로 작동하며, 데이터를 정리, 분석, 변환, 시각화할 때 사용됩니다.

    Pandas의 특징

    1. 쉽고 직관적인 데이터 조작
      • 데이터의 필터링, 정렬, 병합, 그룹화 등을 간단히 처리할 수 있습니다.
    2. 다양한 데이터 포맷 지원
      • CSV, Excel, SQL, JSON, HTML 등의 파일 포맷을 읽고 쓸 수 있습니다.
    3. 고성능 데이터 처리
      • NumPy를 기반으로 최적화되어 대규모 데이터 처리에 적합합니다.
    4. 강력한 데이터 분석 기능
      • 데이터 요약, 집계, 변환, 통계 계산 등을 쉽게 수행할 수 있습니다.
    5. 시각화와의 통합
      • Matplotlib 및 Seaborn과 연동하여 데이터 시각화를 지원합니다.

    Pandas 설치

    Pandas는 Python과 함께 설치되기도 하지만, 설치가 필요하다면 다음 명령어를 사용합니다

     

    Pandas의 주요기능

    1. 데이터 생성 및 파일 입출력

    함수 설명
    pd.DataFrame() 2차원 데이터(표 형식) 생성
    pd.Series() 1차원 데이터 생성
    pd.read_csv() CSV 파일 읽기
    pd.to_csv() DataFrame을 CSV 파일로 저장
    pd.read_excel() Excel 파일 읽기
    pd.to_excel() DataFrame을 Excel 파일로 저장
    pd.read_json() JSON 파일 읽기
    pd.read_sql() SQL 쿼리를 실행하고 결과를 DataFrame으로 반환
    pd.read_html() HTML 테이블을 DataFrame으로 읽기

    2. 데이터 탐색

    함수 설명
    df.head() 데이터의 상위 n개 행 반환 (기본 5개)
    df.tail() 데이터의 하위 n개 행 반환 (기본 5개)
    df.info() 데이터의 구조와 요약 정보 출력
    df.describe() 수치형 데이터의 요약 통계(평균, 표준편차, 최솟값 등)
    df.dtypes 각 열의 데이터 타입 반환
    df.shape 데이터의 (행, 열) 크기 반환
    df.index DataFrame의 인덱스 정보 반환
    df.columns DataFrame의 열 이름 반환
    df.values DataFrame 데이터를 배열 형태로 반환

    3. 데이터 선택 및 필터링

    함수 설명
    df['컬럼명'] 특정 열(컬럼) 선택
    df.iloc[] 정수 기반 인덱싱으로 데이터 선택
    df.loc[] 라벨 기반 인덱싱으로 데이터 선택
    df.at[] 단일 값 선택 (빠름)
    df.iat[] 단일 값 선택 (정수 기반, 빠름)
    df.query() 조건문 기반으로 데이터 선택

    4. 데이터 처리

    함수 설명
    df.isnull() 결측값(NaN) 확인
    df.notnull() 결측값이 아닌 데이터 확인
    df.dropna() 결측값이 있는 행/열 제거
    df.fillna() 결측값을 특정 값으로 대체
    df.replace() 특정 값을 다른 값으로 대체
    df.duplicated() 중복된 행 확인
    df.drop_duplicates() 중복된 행 제거
    df.rename() 행/열 이름 변경
    df.astype() 데이터 타입 변환

    5. 데이터 정렬

    함수 설명
    df.sort_values() 특정 열을 기준으로 데이터 정렬
    df.sort_index() 인덱스를 기준으로 데이터 정렬
    df.reset_index() 기존 인덱스를 제거하고 새로운 정수 인덱스 생성
    df.set_index() 특정 열을 인덱스로 설정

    6. 데이터 연산 및 변환

    함수 설명
    df.apply() 행 또는 열 단위로 함수를 적용
    df.applymap() 각 요소에 함수를 적용
    df.map() Series에 함수 적용
    df.pivot() 데이터를 재구조화
    df.pivot_table() 피벗 테이블 생성
    df.groupby() 데이터를 그룹화
    df.aggregate() 그룹화된 데이터에 여러 함수를 적용

    7. 통계 및 집계 함수

    함수 설명
    df.sum() 합계를 계산
    df.mean() 평균을 계산
    df.median() 중앙값을 계산
    df.var() 분산을 계산
    df.std() 표준편차를 계산
    df.min() 최솟값을 반환
    df.max() 최댓값을 반환
    df.count() 결측값을 제외한 데이터 개수 반환
    df.corr() 열 간의 상관 계수 계산
    df.cov() 열 간의 공분산 계산

    8. 데이터 합치기 및 변형

    함수 설명
    pd.concat() 두 개 이상의 데이터프레임을 연결
    pd.merge() 두 데이터프레임을 키를 기준으로 병합
    df.join() 다른 데이터프레임과 병합
    pd.melt() 데이터프레임을 길게 변환
    df.stack() 데이터프레임을 스택 형태로 변환
    df.unstack() 스택된 데이터를 펼침

    9. 시각화 함수

    함수 설명
    df.plot() 기본 그래프 생성
    df.hist() 히스토그램 생성
    df.boxplot() 박스플롯 생성
    df.scatter() 산점도 생성 (Matplotlib과 연동)

     


     

    Pandas의 핵심 데이터 구조(  Series ,  DataFrame )

    Series의 기본적인 개념과 구조

    Pandas의 Series는 1차원 데이터를 저장하는 데이터 구조로, **인덱스(index)**와 **값(value)**으로 구성됩니다.

    Python의 리스트NumPy 배열과 비슷하지만, 각 데이터에 고유한 인덱스가 부여되어 데이터를 더 직관적이고 유연하게 다룰 수 있습니다.

     

    1. Series의 개념

    • 1차원 데이터를 다루기 위한 Pandas의 기본 구조.
    • 각 데이터(값)는 인덱스와 쌍을 이루어 저장됩니다.
    • 인덱스를 통해 데이터를 선택하거나 조작할 수 있습니다.
    • 데이터 타입은 동일해야 하며, 문자열, 숫자, 불리언 등 다양한 데이터 타입을 저장할 수 있습니다.

     

    2. Series 생성

    pandas.Series()를 사용하여 Series를 생성합니다.

     

    기본 생성

     

    인덱스 지정

     

     

    3. Series의 구조

    Series는 다음과 같은 두 가지 요소로 구성됩니다

    1. 인덱스(index): 각 값에 대한 라벨(기본값은 정수 0, 1, 2, ...).
    2. 값(value): 실제 데이터.

    4. 주요 특징

    1. 인덱스(Index)
      • 기본적으로 정수형 인덱스(0, 1, 2, ...)를 사용.
      • 사용자가 커스텀 인덱스를 지정할 수 있음.
      • 인덱스를 통해 데이터의 고유성을 부여하고 조회/필터링 가능.
    2. 값(Value)
      • 인덱스와 연결된 실제 데이터.
      • Series의 값은 NumPy 배열(ndarray)로 저장되므로 빠르고 효율적.
    3. 데이터 타입(Dtype)
      • Series는 단일 데이터 타입만 허용합니다. (혼합 데이터는 허용되지 않음.)

    5. Series의 주요 기능

    데이터 선택

             인덱스 이름으로 선택:

     

              정수 인덱스로 선택:

    슬라이싱

    연산

    Series는 배열처럼 연산이 가능합니다.

     
     

     

    6. Series와 다른 데이터 구조 비교


    특징 리스트(List) NumPy 배열(ndarray) Pandas Series
    데이터 타입 혼합 가능 단일 타입 단일 타입
    인덱스 자동(0부터 시작) 자동(0부터 시작) 커스텀 가능 (문자열 등)
    연산 기능 제한적 고속 연산 지원 고속 연산 + 인덱스 연동
    메모리 사용 더 큼 작음 NumPy 기반으로 효율적

    DataFrame의 개념

    • 2차원 데이터 구조로, 행(row)과 열(column)을 통해 데이터를 구성합니다.
    • 각 행과 열에 고유한 **인덱스(index)**와 컬럼(column) 이름이 존재합니다.
    • NumPy 배열처럼 수치 데이터를 다룰 수 있으면서도, 다양한 데이터 타입(숫자, 문자열, 날짜 등)을 함께 저장할 수 있습니다.
    • 데이터 분석 및 조작을 위한 강력한 메서드함수를 제공합니다.

    1. DataFrame의 개념

    • 2차원 데이터 구조로, 행(row)과 열(column)을 통해 데이터를 구성합니다.
    • 각 행과 열에 고유한 **인덱스(index)**와 컬럼(column) 이름이 존재합니다.
    • NumPy 배열처럼 수치 데이터를 다룰 수 있으면서도, 다양한 데이터 타입(숫자, 문자열, 날짜 등)을 함께 저장할 수 있습니다.
    • 데이터 분석 및 조작을 위한 강력한 메서드함수를 제공합니다.

    2. DataFrame 생성

    리스트로 생성

    행(row): 0, 1, 2 (기본 인덱스) , 열(column): ID, Name, Age

     

    딕셔너리로 생성

     

    레이블로생성 

     

    3. DataFrame의 기본 구조

    구성 요소

    1. 행(Row):
      • 데이터를 가로 방향으로 나타낸 단위.
      • 행은 **인덱스(index)**로 구분됩니다.
      • 기본적으로 0부터 시작하는 정수형 인덱스를 사용하지만, 사용자가 원하는 값으로 변경할 수 있습니다.
    2. 열(Column):
      • 데이터를 세로 방향으로 나타낸 단위.
      • 열은 컬럼(column) 이름으로 구분됩니다.
      • 컬럼 이름은 문자열 또는 숫자일 수 있습니다.
    3. 값(Value):
      • 각 셀(cell)에 저장된 실제 데이터.

    구조확인

    4. DataFrame 주요 특징

    1. 인덱스(Index):
      • 각 행에 대한 고유 식별자 역할.
      • 기본값은 정수형(0부터 시작)이나, 사용자 정의 인덱스를 사용할 수 있음.
    2. 컬럼(Column):
      • 각 열은 특정 속성이나 변수를 나타냄.
      • 동일한 데이터 타입을 가질 필요는 없음.
    3. 데이터 값(Value):
      • 2차원 형태로 저장되며, NumPy 배열(ndarray)에 기반.
    4. 다양한 데이터 타입 지원:
      • 숫자, 문자열, 날짜, Boolean 등 혼합 데이터를 저장 가능

    6. DataFrame과 Series의 차이

     

    특징 Series DataFrame
    차원 1차원 2차원
    데이터 구조 인덱스 + 값 인덱스 + 컬럼 + 값
    인덱스 지원 단일 인덱스 행과 열 각각 인덱스를 가짐
    사용 목적 단일 열 데이터 처리 여러 열(표 형식 데이터) 처리
    728x90
Designed by Tistory.