Pandas 라이브러리
행과 열로 이루어진 2차원 데이터를 효율적으로 가공할 수 있는 다양한 기능 제공
설치 방법
pip install pandas
사용 방법
import pandas as pd
Pandas 데이터 형식
pandas는 시리즈(Series)와 데이터프레임(DataFrame)이라는 구조화된 데이터 형식을 제공
1) 시리즈
- 시리즈는 데이터가 순차적으로 나열된 1차원 배열의 형태
- index와 value가 일대일 대응 관계
# 딕셔너리로 Series 생성
# 딕셔너리의 키는 시리즈의 인덱스와 대응하고,
# 딕셔너리의 각 키에 매칭되는 값은 시리즈의 데이터 값으로 변환됨.
dict_data = {'a':1,'b':2,'c':3}
series_data = pd.Series(dict_data)
# 데이터 타입, 내용 확인
print(type(series_data))
print(series_data)
# 리스트로 Series 생성
# 리스트를 시리즈로 변환할 때는 딕셔너리의 키처럼 인덱스로 변환될 값이 없음.
# 인덱스를 별도로 지정하지않으면 디폴트로 정수형 위치 인덱스가 지정됨.
list_data = ['2022-10-11',3.14,'ABC',100,True]
series_data = pd.Series(list_data)
# 데이터 타입, 내용 확인
print(type(series_data))
print(series_data)
# 리스트에 인덱스 지정
series_data = pd.Series([1, 2, 3, 4, 5], index=['a','b','c','d','e'])
print(type(series_data))
print(series_data)
Q. 시리즈의 인덱스는 뭐야?
더보기
Pandas Series의 인덱스는 각 데이터에 붙는 고유한 라벨(label)로, 데이터를 식별하거나 쉽게 접근할 수 있도록 도와줍니다. Python의 딕셔너리에서 **키(key)**와 유사한 역할을 합니다.
Series의 인덱스 특징
- 기본값: 인덱스는 기본적으로 숫자형(0부터 시작)으로 생성됩니다.
- 사용자 지정 가능: 숫자가 아닌 문자열이나 날짜 등 사용자 정의 인덱스를 설정할 수 있습니다.
- 중복 허용: 인덱스는 고유할 필요는 없으며, 동일한 값이 중복될 수 있습니다.
- 인덱스 데이터 타입: 인덱스도 Pandas의 특별한 객체로 다뤄지며, .index 속성을 통해 확인하거나 변경할 수 있습니다.
Series 인덱스의 주요 속성과 메서드
.index | Series의 인덱스를 반환합니다. |
.reset_index() | 인덱스를 초기화하거나 새로 설정합니다. |
.set_index() | 특정 열을 새로운 인덱스로 설정합니다. |
.loc[] | 라벨 기반 인덱싱을 사용합니다. |
.iloc[] | 위치 기반(숫자형) 인덱싱을 사용합니다. |
.isin() | 인덱스 또는 데이터 값의 포함 여부를 확인합니다. |
Q. 1차원 배열은 아니고, 딕셔너리같은 구조로 되어있는건가?
더보기
Pandas의 Series는 딕셔너리와 1차원 배열의 혼합된 구조로 이해할 수 있습니다. Series는 1차원 배열처럼 순차적인 데이터를 저장하지만, 딕셔너리처럼 키-값 쌍(key-value pairs)을 포함하여 데이터를 라벨링하고 접근할 수 있습니다.
Series의 구조
Series는 본질적으로 **인덱스(index)**와 값(value) 두 가지로 구성됩니다:
- 인덱스(Index): 각 데이터를 식별하는 레이블(키).
- 값(Value): 실제 데이터.
Series는 딕셔너리와 1차원 배열의 장점을 결합
- 딕셔너리처럼 키-값 쌍으로 데이터 관리
- 데이터에 이름(label)을 부여하고, 이를 통해 데이터에 접근 가능.
- 키가 인덱스로 동작하며, 값은 데이터 값으로 저장됨.
- 1차원 배열처럼 연산 가능
- NumPy 배열처럼 벡터 연산을 지원.
- 전체 데이터에 대해 수학적 연산, 조건 필터링, 슬라이싱 등 가능.
Series와 딕셔너리 비교
특징 | Pandas Series | Python Dictionary |
데이터 접근 | data['a'] | dict['key'] |
순서 유지 | 순서 유지 (Pandas >= 0.25) | 파이썬 3.7+에서 순서 유지 |
키와 값 | 인덱스와 값 | 키와 값 |
연산 지원 | 벡터 연산 지원 | 직접 루프를 돌려야 함 |
슬라이싱 | 지원 (data['a':'b']) | 미지원 |
데이터 타입 | 같은 Series 내 혼합 가능 | 딕셔너리 값은 혼합 가능 |
Series와 1차원 배열 비교
특징 | Pandas Series | NumPy Array |
인덱싱 | 레이블 기반 인덱싱 지원 | 위치 기반 인덱싱만 가능 |
연산 | 벡터 연산 지원 | 벡터 연산 지원 |
데이터 타입 | 혼합 타입 가능 | 단일 데이터 타입만 허용 |
슬라이싱 | 인덱스와 값 모두 슬라이싱 | 값만 슬라이싱 가능 |
Series는 딕셔너리와 1차원 배열의 중간 형태
- 딕셔너리처럼 라벨링된 데이터를 다룰 수 있으면서도,
- 배열처럼 빠른 연산과 데이터 조작이 가능합니다.
결론
Pandas Series는 기본적으로 1차원 배열이지만, 인덱스를 포함하여 딕셔너리처럼 동작할 수 있는 데이터 구조입니다.
- 딕셔너리처럼 키-값 접근이 가능하며,
- 1차원 배열처럼 벡터 연산과 같은 고성능 연산도 지원합니다.이 두 가지 특성을 결합하여, 데이터 분석에서 더 강력하고 유연한 도구로 활용됩니다.
반응형
'공부 > AI' 카테고리의 다른 글
파이썬 컨테이너 Container 리스트 list (0) | 2024.11.24 |
---|---|
패스트캠퍼스 강의 정리 - Python 프로그래밍 기초 1 (0) | 2024.11.23 |
파이썬 크롤링 연습 (0) | 2024.11.21 |
패스트캠퍼스 Data Scientist 마인드셋 특강 후기 (0) | 2024.11.16 |
패스트캠퍼스 Upstage AI Lab 6기 OT 후기 (0) | 2024.11.16 |