- 수업 내용 리마인드 및 아카이빙 목적의 업로드
1. Pandas란?
Pandas는 파이썬에서 데이터 분석을 위한 강력한 라이브러리입니다. R 언어의 데이터프레임에서 영감을 받아 설계되었으며, 내부적으로 Numpy를 활용해 빠르고 효율적인 데이터 처리를 가능하게 합니다. Pandas를 통해 엑셀과 비슷한 구조의 데이터를 다룰 수 있어 데이터 분석을 더욱 직관적으로 할 수 있어요.
2. Pandas의 주요 자료형
- Series: Series는 Numpy의 1차원 배열과 비슷한데, 인덱스와 값으로 구성되어 있어요. 리스트나 딕셔너리 같은 자료형에서 쉽게 만들 수 있고, 인덱스를 통해 데이터를 자유롭게 다룰 수 있어요.
# 리스트를 사용해 Series를 만들어 보고, 데이터를 다루는 방법
import pandas as pd
x = [1, 2, 3, 4, 5]
series = pd.Series(x)
print(series)
- DataFrame: DataFrame은 여러 개의 Series를 모아 만든 2차원 테이블 구조로, 엑셀의 시트와 비슷한 구조를 가지고 있어요. 행과 열로 데이터를 쉽게 선택하고 분석할 수 있답니다.
# 딕셔너리를 이용해 간단한 DataFrame을 만드는 방법
data = {
'연도': [2015, 2016, 2017],
'판매량': [103, 70, 130],
'매출': [500000, 300000, 400000]
}
df = pd.DataFrame(data)
print(df)
3. Pandas의 핵심 기능
- 인덱싱과 슬라이싱: Pandas에서는 필요한 데이터만 쏙쏙 골라낼 수 있는 인덱싱과 슬라이싱 기능을 제공합니다. 이 기능을 통해 원하는 데이터만 빠르게 선택해서 분석할 수 있어요.
# DataFrame에서 행과 열을 선택하는 다양한 방법
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [10, 20, 30, 40]
})
print(df.iloc[1:3]) # 행 선택
print(df['A']) # 열 선택
- 데이터 결합과 병합: Pandas는 여러 개의 DataFrame을 하나로 합치거나 결합하는 다양한 방법을 제공해요. concat, merge, join 같은 기능을 사용해 데이터를 자유롭게 합칠 수 있습니다.
# 두 개의 DataFrame을 합치는 방법
df1 = pd.DataFrame({'A': ['A0', 'A1'], 'B': ['B0', 'B1']})
df2 = pd.DataFrame({'A': ['A2', 'A3'], 'B': ['B2', 'B3']})
result = pd.concat([df1, df2])
print(result)
- 결측값 처리: 데이터 분석을 할 때 결측값(NaN)을 어떻게 처리하느냐가 매우 중요해요. Pandas는 결측값을 쉽게 찾아내고, 제거하거나 다른 값으로 대체할 수 있는 다양한 방법을 제공해요.
# DataFrame에서 결측값을 특정 값으로 채우는 방법
df = pd.DataFrame({
'A': [1, 2, None, 4],
'B': [None, 2, 3, 4]
})
df.fillna(0, inplace=True)
print(df)
4. 데이터 연산과 집계 함수
Pandas는 기본적인 수학 연산과 통계 분석을 위한 다양한 함수를 제공해요. 이를 통해 데이터를 더 깊이 있게 분석하고, 중요한 인사이트를 얻을 수 있죠.
- 기초 통계 연산: Pandas는 합계, 평균, 표준편차 같은 기초적인 통계 연산을 쉽게 처리할 수 있어요.
# DataFrame의 합계와 평균을 구하는 방법
df = pd.DataFrame({
'A': [1, 2, 3, 4],
'B': [5, 6, 7, 8]
})
print(df.sum()) # 합계
print(df.mean()) # 평균
- 그룹화와 집계(GroupBy): 데이터를 그룹별로 묶어서 분석하는 것도 Pandas의 강력한 기능 중 하나예요. 특정 기준으로 데이터를 그룹화한 후, 각 그룹별로 집계 연산을 할 수 있어요.
# 데이터를 그룹화한 후 각 그룹의 합계를 계산하는 방법
df = pd.DataFrame({
'Category': ['A', 'A', 'B', 'B'],
'Values': [10, 15, 10, 25]
})
grouped = df.groupby('Category').sum()
print(grouped)
'+ 개발' 카테고리의 다른 글
논문 리뷰(#텍스트 마이닝 #금통위 의사록 분석)_Gen.AI (3) | 2024.08.30 |
---|---|
블로그 크롤링(#네이버 블로그)_코드 설명 (2) | 2024.08.30 |
Numpy로 데이터 처리하기 (1) | 2024.08.28 |
데이터 시각화 기초 (1) | 2024.08.26 |
MySQL을 활용한 크롤링 데이터 저장(ft.Python) (0) | 2024.08.23 |