안녕하세요.
오늘은 판다스(Pandas)에 대해 알아보겠습니다.
먼저 Numpy 기반의 라이브러리인 Pandas 에 대해 위키백과에 나와있는 내용을 확인해보겠습니다.
pandas 는 데이터 조작 및 분석을 위한 Python 프로그래밍 언어 용으로 작성된 소프트웨어 라이브러리입니다. 특히 숫자 테이블과 시계열 을 조작하기 위한 데이터 구조와 연산을 제공합니다. 이것은 무료 소프트웨어이며 New BSD 라이센스입니다. pandas란 이름은 한 개인에 대해 여러 기간동안 관찰을 한다는 데이터 세트에 대한 계량 경제학 용어인 "패널 데이터"라는 용어에서 파생되었습니다. 또한 "Python 데이터 분석"이라는 문구 자체에서 따온 것입니다. Wes McKinney 는2007년부터 2010년까지 연구원으로 있을 때 AQR Capital에서 pandas를 만들기 시작했습니다.
- Wiki 백과 중
간략하게 정리한다면 Pandas란 구조화된 데이터를 효과적으로 처리하고 저장할 수 있는 파이썬 라이브러리입니다.
특히, 배열의 계산에 특화된 Numpy를 기반으로 만들어져 다양한 기능들을 제공한다고 할 수 있습니다.
그렇다면 예제로 한번 알아보도록 하겠습니다.
먼저 Series입니다. Series는 Numpy array가 보강된 형태의 Data와 Index를 가지고 있습니다.
Index가 있으니 Series에디엍트 인덱스로 접근이 가능합니다.
import pandas as pd
data = pd.Series([1, 2, 3, 4])
data
# Index Data
# 0 1
# 1 2
# 2 3
# 3 4
# dtype: int64
data = pd.Series([1, 2, 3, 4], index=['a', 'b', 'c', 'd'])
data['b']
# 2
# Index Data
# a 1
# b 2
# c 3
# d 4
# dtype: int64
Series는 딕셔너리로 만들 수도 있습니다.
아래의 예제는 국가별로 인구수를 만명단위로 넣어놓은 형태입니다.
populiation_dict = {
'korea' : 5180,
'japan' : 12718,
'china' : 141500,
'usa' : 32676
}
population = pd.Serries(population_dict)
DataFrame 을 활용하면 여러 개의 Series를 모아 행과 열을 이룬 데이터를 만들 수 있습니다.
아래의 예는 DataFrame을 활용해 행과 열을 만들어 index, column 을 확인한 예제입니다.
populiation_dict = {
'korea' : 5180,
'japan' : 12718,
'china' : 141500,
'usa' : 32676
}
gdp_dict = {
'korea' : 169320000,
'japan' : 516700000,
'china' : 1409250000,
'usa' : 2041280000
}
gdp = pd.Series(gdp_dict)
country = pd.DataFrame({
'population': population,
'gdp': gdp
})
country.index
# Index(['china', 'japan', 'korea', 'usa'], dtype='object')
country.columns
# Index(['gdp', 'population'], dtype='object')
country['gdp']
type(country['gdp'])
# pandas.core.series.Series
Series 역시 Numpy 의 array 처럼 연산자를 사용할 수 있습니다.
1인당 GDP인 gdp_per_capita 라는 변수를 선언해 gdp 를 population 으로 나눠 country DataFrame에 넣어봤습니다.
마지막 열에 gdp per capita가 추가되는걸 볼 수 있습니다.
gdp_per_capita = country['gdp'] / country['population']
country['gdp per capita'] = gdp_per_capita
# Index Data
# china 9959.363958
# japan 40627.457147
# korea 32687.258687
# usa 62470.314604
# dtype: float64
# Data population gdp per capita
# china 1409250000 141500 9959.363958
# japan 516700000 12718 40627.457147
# korea 169320000 5180 32687.258687
# usa 2041280000 32676 62470.314604
# 만든 데이터 프레임 저장 및 불러오기
country.to_csv("./country.csv")
country.to_excel("country.xlsx")
country = pd.read_csv("./country.csv")
country = pd.read_excel("country.xlsx")
즉, Series 데이터는 하나의 컬럼 값으로 이루어져있고 Data Frame은 여러 개의 컬럼 값을 가질 수 있습니다.
바로 csv나 excel로 저장하고 불러올 수 있는것도 굉장히 유용하게 사용될 수 있을 것 같네요.
그럼 오늘은 여기까지하도록 하겠습니다.
감사합니다.
'IT > Python' 카테고리의 다른 글
Pandas(판다스) - 파이썬을 활용한 데이터 분석 기초 #5 (2) | 2022.09.26 |
---|---|
Numpy(넘파이) - 파이썬을 활용한 데이터 분석 기초 #3 (2) | 2022.09.20 |
Numpy(넘파이) - 파이썬을 활용한 데이터 분석 기초 #2 (0) | 2022.09.19 |