Pandas는 numpy와 함께 가장 자주 쓰이는 파이썬 라이브러리 중 하나이다.
(애초에 numpy 기반으로 개발되기도 했고)
보통 넘파이와 연동하여 구조화된 데이터를 처리하는 데 사용한다.
판다스의 주요 기능
- numpy 연동
- 축의 이름에 따라 데이터를 정렬할 수 있는 자료 구조
- 다양한 방식으로 인덱싱(indexing)하여 데이터를 다룰 수 있음
- 통합된 시계열 기능
- 시계열 데이터와 비시계열 데이터를 함께 다룰 수 있는 통합 자료 구조
- 누락된 데이터 처리 기능
- 데이터베이스처럼 데이터를 합치고 관계 연산을 수행하는 기능
공식 Docs는 아래 링크에서 확인할 수 있다.
Pandas Doc | https://pandas.pydata.org/pandas-docs/stable/
Series
는 일련의 객체를 담을 수 있는 1차원 배열과 유사한 구조의 자료형이다.ndarray
, list
, dict
, tuple
등을 통해 Series
객체를 생성할 수 있다.import pandas as pd
ser = pd.Series(['a','b','c',3])
ser
>>> 0 a
1 b
2 c
3 3
dtype: object
Series
객체에서 인덱스를 호출하면 array
형태로 값이 반환된다.value
를 호출하면 정수형 인덱스인 RangeIndex
가 반환된다.ser.index
>>> RangeIndex(start=0, stop=4, step=1)
ser.values
>>> array(['a', 'b', 'c', 3], dtype=object)
Series
객체는 기본적으로 정수형 인덱스를 갖지만,# 패러미터 지정
ser2 = pd.Series(['a', 'b', 'c', 3], index=['i','j','k','h'])
ser2
>>> i a
j b
k c
h 3
dtype: object
# 할당 연산자 사용
ser2.index = ['John', 'Steve', 'Jack', 'Bob']
ser2
>>> John a
Steve b
Jack c
Bob 3
dtype: object
ser2.index
>>> Index(['Jhon', 'Steve', 'Jack', 'Bob'], dtype='object')
dict
타입의 데이터도 인덱스로 사용할 수 있다.Series
객체의 인덱스를 key
로 사용할 수 있다.Country_PhoneNumber = {'Korea': 82, 'America': 1, 'Swiss': 41, 'Italy': 39, 'Japan': 81, 'China': 86, 'Rusia': 7}
ser3 = pd.Series(Country_PhoneNumber)
ser3
>>> Korea 82
America 1
Swiss 41
Italy 39
Japan 81
China 86
Rusia 7
dtype: int64
ser3['Korea']
>>> 82
ser3['Italy':]
>>> Italy 39
Japan 81
China 86
Rusia 7
dtype: int64
Series
객체와 인덱스는 name
속성을 가지고 있다.ser3.name = 'Country_PhoneNumber'
ser3.index.name = 'Country_Name'
ser3
>>> Country_Name
Korea 82
America 1
Swiss 41
Italy 39
Japan 81
China 86
Rusia 7
Name: Country_PhoneNumber, dtype: int64