Pandas - 1. 소개와 설치
2025. 1. 24. 17:37ㆍ프로그래밍 (확장)/Python-Pandas
Pandas란 무엇인가?
Pandas는 Python에서 데이터 분석과 조작을 간편하게 수행할 수 있도록 설계된 강력한 라이브러리입니다. Pandas는 구조화된 데이터를 효율적으로 처리하고, 분석 및 조작하는 데 필요한 도구들을 제공합니다.
- 주요 특징:
- 데이터 조작: 데이터를 정렬, 필터링, 그룹화, 집계 등 다양한 방식으로 다룰 수 있음
- 간편한 파일 입출력: CSV, Excel, JSON 등 다양한 형식의 데이터를 읽고 쓸 수 있음
- 풍부한 데이터 구조: Series(1차원 데이터)와 DataFrame(2차원 데이터) 제공
- 고성능: C로 구현된 내부 연산으로 빠르고 효율적인 데이터 처리가 가능함
Pandas의 주요 개념과 활용 사례
- 주요 개념
- Series: 1차원 데이터 구조로, Python의 리스트나 Numpy 배열과 유사하지만 인덱스를 제공하여 데이터에 레이블을 부여할 수 있음.
- DataFrame: 2차원 데이터 구조로, 행과 열로 구성되어 엑셀 스프레드시트와 유사. 데이터를 쉽게 탐색하고 분석할 수 있음.
- Panel: 3차원 데이터 구조로, Pandas 초기 버전에 포함되었으나 현재는 사용되지 않습니다. 대신 MultiIndex를 활용한 다차원 데이터 처리를 권장합니다.
- 활용 사례
- 데이터 정리 및 전처리: 결측치 처리, 중복 제거, 데이터 변환
- 데이터 분석: 통계 분석, 그룹화 및 집계
- 데이터 시각화: 그래프 생성 및 분석 결과 표현
- 대용량 데이터 처리: 효율적인 메모리 관리 및 성능 최적화
Python 데이터 분석 생태계에서의 Pandas 위치
Pandas는 Python의 데이터 분석 생태계에서 중심적인 역할을 합니다. 다양한 라이브러리와 함께 사용되며 데이터 전처리와 조작의 기본 도구로 활용됩니다.
- Numpy: Pandas의 데이터 구조는 Numpy 배열 위에 구축됨.
- Matplotlib/Seaborn: 데이터를 시각화할 때 Pandas와 함께 사용.
- Scikit-learn: 머신러닝 모델링 전 데이터 전처리에 Pandas를 활용.
데이터 사이언스 워크플로우에서의 Pandas 역할
데이터 사이언스에서 Pandas는 데이터 수집, 정제, 분석, 시각화까지 데이터 처리의 모든 단계를 지원합니다.
- 데이터 수집: CSV, Excel, SQL 등 다양한 소스에서 데이터를 읽어옴.
- 데이터 정제: 결측치 처리, 중복 제거, 데이터 변환 등.
- 데이터 분석: 통계 분석, 그룹화 및 집계.
- 데이터 시각화: 데이터를 시각적으로 표현하여 통찰 도출.
설치 및 환경 설정
Pandas 설치
Pandas는 Python 환경에서 간단히 설치할 수 있습니다.
1. pip를 사용한 설치
pip install pandas
2. conda를 사용한 설치
Anaconda를 사용하는 경우 다음 명령으로 설치 가능합니다.
conda install pandas
Jupyter Notebook 또는 IDE 환경 설정
1. Jupyter Notebook 설치
Jupyter Notebook은 Pandas를 학습하고 사용할 때 매우 유용한 도구입니다.
pip install notebook
jupyter notebook
2. IDE 환경 설정
VS Code 설정
- Python/Jupyter 확장 설치:
- VS Code의 확장 마켓플레이스에서 Python 및 Jupyter 확장을 설치합니다.
- 디버깅 구성:
- .vscode/launch.json 파일을 생성하거나 자동 생성된 설정을 이용해 디버깅 환경을 설정합니다.
- 예시:
{ "version": "0.2.0", "configurations": [ { "type": "python", "request": "launch", "name": "Python: Current File", "program": "${file}", "console": "integratedTerminal" } ] }
- 코드 실행 단축키:
- Ctrl + Shift + P를 눌러 Run Python File in Terminal을 실행하거나 Shift + Enter로 셀 단위 실행 가능.
PyCharm 설정
- Project Interpreter 설정:
- File > Settings > Project: [Project Name] > Python Interpreter에서 가상환경 또는 시스템 Python을 선택합니다.
- 디버깅 환경 설정:
- 우측 상단의 Run/Debug Configurations에서 스크립트를 선택하거나 새 구성을 추가.
- Pandas 자동완성 설정:
- PyCharm은 기본적으로 Pandas에 대한 자동완성을 지원하지만, Python 인터프리터에 Pandas가 설치되어 있어야 작동합니다.
버전 관리 및 호환성 고려사항
- Pandas의 최신 버전을 사용하는 것이 권장됩니다.
- Python 및 Pandas 버전 간 호환성을 확인하여 다른 라이브러리와의 충돌을 방지하세요.
Python 버전별 Pandas 호환성 표
Python 버전 Pandas 최소 버전 비고
3.7 | 1.0.0 | 유지보수 종료 예정 |
3.8 | 1.0.0 | |
3.9 | 1.2.0 | |
3.10 | 1.3.0 | |
3.11 | 1.5.0 | 최신 버전 권장 |
주요 라이브러리들과의 의존성 정보
- Numpy: Pandas는 Numpy를 기반으로 작동하므로 호환 가능한 Numpy 버전을 사용해야 합니다.
- Matplotlib: 데이터 시각화를 위해 Pandas와 함께 자주 사용되며 버전 충돌 가능성 확인 필요.
의존성 관리
- requirements.txt 파일 생성: 의존성을 명시하여 프로젝트의 환경을 재현할 수 있습니다.
pip freeze > requirements.txt
- 설치 시:
pip install -r requirements.txt
가상환경 사용 권장사항
- 프로젝트별로 독립적인 환경을 유지하기 위해 가상환경을 사용하는 것이 좋습니다.
- 가상환경 생성 및 활성화:
# 가상환경 생성
python -m venv myenv
# 가상환경 활성화 (Windows)
myenv\Scripts\activate
# 가상환경 활성화 (Mac/Linux)
source myenv/bin/activate
- 가상환경에서 Pandas를 설치하여 프로젝트 간 충돌 방지.
첫 번째 DataFrame
데이터 구조: Series와 DataFrame 비교
1. Series: 1차원 데이터 구조
import pandas as pd
# Series 생성
series = pd.Series([10, 20, 30], index=['a', 'b', 'c'])
print(series)
출력:
a 10
b 20
c 30
dtype: int64
2. DataFrame: 2차원 데이터 구조
# DataFrame 생성
data = {'Name': ['Alice', 'Bob', 'Charlie'],
'Age': [25, 30, 35],
'City': ['New York', 'Los Angeles', 'Chicago']}
df = pd.DataFrame(data)
print(df)
출력:
Name Age City
0 Alice 25 New York
1 Bob 30 Los Angeles
2 Charlie 35 Chicago
샘플 데이터를 사용해 DataFrame 생성
NaN 값을 포함한 예제
# 결측치(NaN)를 포함한 DataFrame 생성
data_with_nan = {
'Name': ['Alice', 'Bob', None],
'Age': [25, None, 35],
'City': ['New York', 'Los Angeles', 'Chicago']
}
df_nan = pd.DataFrame(data_with_nan)
print(df_nan)
출력:
Name Age City
0 Alice 25.0 New York
1 Bob NaN Los Angeles
2 None 35.0 Chicago
다양한 데이터 타입을 포함한 예제
# 다양한 데이터 타입을 포함한 DataFrame 생성
sample_data = {
'Product': ['Laptop', 'Tablet', 'Smartphone'],
'Price': [1000.50, 500.75, 800.00],
'Available': [True, True, False],
'Launch Date': ['2022-01-01', '2023-05-10', '2023-09-15'],
'Category': ['Electronics', 'Electronics', 'Mobile']
}
df = pd.DataFrame(sample_data)
# 날짜 데이터 변환 및 카테고리 설정
df['Launch Date'] = pd.to_datetime(df['Launch Date'])
df['Category'] = df['Category'].astype('category')
print(df)
출력:
Product Price Available Launch Date Category
0 Laptop 1000.5 True 2022-01-01 Electronics
1 Tablet 500.75 True 2023-05-10 Electronics
2 Smartphone 800.0 False 2023-09-15 Mobile
인덱스 설정 예시
# 인덱스를 설정한 DataFrame 생성
data = {
'Order ID': [1001, 1002, 1003],
'Customer': ['Alice', 'Bob', 'Charlie'],
'Total': [250.75, 100.50, 320.00]
}
df = pd.DataFrame(data)
df.set_index('Order ID', inplace=True)
print(df)
출력:
Customer Total
Order ID
1001 Alice 250.75
1002 Bob 100.50
1003 Charlie 320.00
실제 데이터셋 기반 예제
# 타이타닉 데이터셋 예제 (Seaborn 설치 필요)
# 설치 명령: pip install seaborn
import seaborn as sns
# 타이타닉 데이터 로드
data = sns.load_dataset('titanic')
# 간단한 데이터 요약 출력
print(data.head())
print(data.info())
출력: 타이타닉 데이터 요약 및 열 정보 출력
성능 비교 데모
import pandas as pd
import numpy as np
import time
# 큰 데이터 생성
size = 10**6
data = {
'A': np.random.rand(size),
'B': np.random.rand(size)
}
# DataFrame 생성
start = time.time()
df = pd.DataFrame(data)
end = time.time()
print(f"DataFrame 생성 시간: {end - start:.2f}초")
에러 처리 예제
try:
# 존재하지 않는 파일 읽기
df = pd.read_csv('nonexistent_file.csv')
except FileNotFoundError as e:
print(f"에러 발생: {e}")
'프로그래밍 (확장) > Python-Pandas' 카테고리의 다른 글
Pandas - 3. 데이터 입출력 (I/O) (0) | 2025.01.24 |
---|---|
Pandas - 2. 데이터 구조 (0) | 2025.01.24 |
판다스 (Pandas) (Pivot Table) (0) | 2024.08.03 |
판다스 (Pandas) (GroupBy) (0) | 2024.08.03 |
판다스 (Pandas) (Pivot) (0) | 2024.08.03 |