Pandas 간단 소개
21 Jan 2019
Pandas는 열 중심 데이터 분석 API입니다. 입력 데이터를 처리하고 분석하는 데 효과적인 도구이며, 여러 ML 프레임워크에서도 Pandas 데이터 구조를 입력으로 지원합니다.
기본 개념
Pandas의 기본 데이터 구조는 두 가지 클래스로 구현됩니다.
- DataFrame은 행 및 이름 지정된 열이 포함된 관계형 데이터 테이블이라고 생각할 수 있습니다.
- Series는 하나의 열입니다.
DataFrame
에는 하나 이상의Series
와 각Series
의 이름이 포함됩니다.
Series
를 만드는 한 가지 방법은 Series
객체를 만드는 것입니다.
pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
DataFrame
객체는 string
열 이름과 매핑되는 ‘dict’를 각각의 Series
에 전달하여 만들 수 있습니다. Series
의 길이가 일치하지 않는 경우, 누락된 값은 특수 NA/NaN 값으로 채워집니다.
city_names = pd.Series(['San Francisco', 'San Jose', 'Sacramento'])
population = pd.Series([852469, 1015785, 485199])
pd.DataFrame({ 'City name': city_names, 'Population': population })
데이터 액세스
cities = pd.DataFrame({ 'City name': city_names, 'Population': population })
print(type(cities['City name']))
cities['City name']
print(type(cities['City name'][1]))
cities['City name'][1]
print(type(cities[0:2]))
cities[0:2]
데이터 조작
NumPy는 유명한 계산과학 툴킷입니다. Pandas Series
는 대부분의 NumPy 함수에 인수로 사용할 수 있습니다.
import numpy as np
np.log(population)
더 복잡한 단일 열 변환에는 Series.apply
를 사용할 수 있습니다. Python map 함수처럼, Series.apply
는 인수로 lambda 함수를 허용하며, 이는 각 값에 적용됩니다.
population.apply(lambda val: val > 1000000)
DataFrames
수정
cities['Area square miles'] = pd.Series([46.87, 176.53, 97.92])
cities['Population density'] = cities['Population'] / cities['Area square miles']
cities
Python Lambda
사용할 때는 아래와 같이 작성합니다.
lambda 인자 : 표현식
두 수를 더하는 간단한 함수
def hap(x, y):
return x + y
(lambda x,y: x + y)(10, 20)
map()
map(함수, 리스트)
map(lambda x: x ** 2, range(5))
reduce()
reduce(함수, 순서형 자료)
reduce(lambda x, y: x + y, [0, 1, 2, 3, 4])
filter()
filter(함수, 리스트)
filter(lambda x: x < 5, range(10))