Pandas는 "관계형"또는 "레이블"이 있는 데이터를
쉽고 직관적으로 작업 할 수 있도록 설계된
빠르고 유연하며 표현적인 데이터 구조를 제공 하는
Python 패키지이다.
Spreadsheets or databases에 저장된 데이터와 같은 테이블 형식의 데이터( tabular data )로 작업 할 때 pandas가 적합한 도구이다. Pandas는 데이터를 탐색, 정리 및 처리하는 데 도움이 된다. Pandas에서는 데이터 테이블을 Data Frame이라고 한다.

위 그림에서 처럼 Pandas = Series + Series + ... + Series 이다.
Pandas는 다양한 종류의 데이터에 적합하다.
-
SQL 테이블 또는 Excel 스프레드 시트에서와 같이 유형이 다른 열이있는 테이블 형식
-
데이터 순서가 있거나 또는 없는 시계열 데이터
-
행 및 열 레이블이 있는 임의 행렬 데이터 다른 형태의 관측 / 통계 데이터 세트
기타 Pandas의 자세한 내용은 아래 링크를 참조 한다.
https://pandas.pydata.org/pandas-docs/stable/getting_started/overview.html
Package overview — pandas 1.0.5 documentation
pandas is a Python package providing fast, flexible, and expressive data structures designed to make working with “relational” or “labeled” data both easy and intuitive. It aims to be the fundamental high-level building block for doing practical, r
pandas.pydata.org
Pandas 자료구조
기본적으로 Pandas는 위의 그림처럼 Series와 Data Frame이라는 자료구조를 사용합니다.
Series
import pandas as pd
# Series 정의하기
ds = pd.Series([4, 5, -5, 3])
print(ds)
0 4
1 5
2 -5
3 3
dtype: int64
# Series의 값만 확인하기
ds.values
array([ 4, 5, -5, 3])
# Series의 인덱스만 확인하기
ds.index
RangeIndex(start=0, stop=4, step=1)
# 인덱스를 바꿀 수 있다.
ds2 = pd.Series([4, 5, -5, 3], index=['d', 'b', 'a', 'c'])
print(ds2)
d 4
b 5
a -5
c 3
dtype: int64
# python의 dictionary 자료형을 Series data로 만들 수 있다.
# dictionary의 key가 Series의 index가 된다
series_data = {'A': 35000, 'B': 67000, 'C': 12000, 'D': 4000}
ds3 = pd.Series(series_data)
print(ds3)
A 35000
B 67000
C 12000
D 4000
dtype: int64
# index 변경
ds3.index = ['a', 'b', 'c', 'd']
print(ds3)
a 35000
b 67000
c 12000
d 4000
dtype: int64
Data Frame
# Data Frame 정의하기
data = {'name': ['Na', 'Park', 'Kim', 'Lee', 'Hong'],
'year': [2013, 2014, 2015, 2016, 2015],
'points': [1.2, 1.7, 3.2, 2.4, 2.7]}
df = pd.DataFrame(data)
print(df)
name year points
0 Na 2013 1.2
1 Park 2014 1.7
2 Kim 2015 3.2
3 Lee 2016 2.4
4 Hong 2015 2.7
# 행 방향의 index
df.index
RangeIndex(start=0, stop=5, step=1)
# 열 방향의 index
df.columns
Index(['name', 'year', 'points'], dtype='object')
# 값 얻기
df.values
array([['Na', 2013, 1.2],
['Park', 2014, 1.7],
['Kim', 2015, 3.2],
['Lee', 2016, 2.4],
['Hong', 2015, 2.7]], dtype=object)
# 각 인덱스에 대한 이름 설정하기
df.index.name = 'Num'
df.columns.name = 'Info'
print(df)
Info name year points
Num
0 Na 2013 1.2
1 Park 2014 1.7
2 Kim 2015 3.2
3 Lee 2016 2.4
4 Hong 2015 2.7
# DataFrame을 만들면서 columns와 index를 설정할 수 있다.
df2 = pd.DataFrame(data, columns=['year', 'name', 'points', 'penalty'],
index=['one', 'two', 'three', 'four', 'five'])
print(df2)
year name points penalty
one 2013 Na 1.2 NaN
two 2014 Park 1.7 NaN
three 2015 Kim 3.2 NaN
four 2016 Lee 2.4 NaN
five 2015 Hong 2.7 NaN
# Data로 정의되는 dictionary와 columns의 순서가 달라도 자동으로 정의된다.
# 하지만, data에 포함되어 있지 않은 값은 NaN으로 표시된다.
# NaN값은 처리 되지 않는 데이터다.
# 해당 data가 필요하다면 추가적으로 값을 넣어줘야 한다.
# describe() 함수는 DataFrame의 계산 가능한 값들에 대한 계산 값을 보여준다.
df2.describe()
year points
count 5.000000 5.000000 # 개수
mean 2014.600000 2.240000 # 평균
std 1.140175 0.795613 # 표준편자
min 2013.000000 1.200000 # 최소값
25% 2014.000000 1.700000 # 25th percentile
50% 2015.000000 2.400000 # 50th percentile
75% 2015.000000 2.700000 # 75th percentile
max 2016.000000 3.200000 # 최대값
지속적으로 업데이트 예정임.
'머신러닝(ML)' 카테고리의 다른 글
| 데이터 전처리 - Label Encoding, One Hot Encoding (0) | 2020.08.07 |
|---|---|
| K-Means 클러스터링 (0) | 2020.07.09 |
| 나이브 베이즈 분류( Naive Bayes Classification)란... (0) | 2020.07.09 |
| 두 점 사이의 거리 공식 (0) | 2020.07.09 |
| 베이즈 정리( Bayes' Theorem )란... (0) | 2020.07.09 |