5. Pandas 자료구조
1. Pandas의 자료구조, Series, DataFrame
Series는 동일한 데이터형의 성분으로 구성된 자료구조
DataFrame은 서로 같거나 다른 데이터형의 여러개의 열에 대하여 복수개의 성분으로 구성된 '표와 같은 형태'의 자료구조
Series는 C언어에서의 배열, DataFrame은 C언어에서의 구조체와 비슷한것 같다.
1.1 Series
Series를 생성할때 인자로 파이썬의 배열이나, Numpy의 배열이 들어간다.
import numpy as np import pandas as pd obj = pd.Series([1,2,3,4]) print(obj) #출력 0 1 # 1 2 # 2 3 # 3 4 # dtype: int64 obj.values #출력 array([ 1, 2, 3, 4], dtype=int64) obj.index #출력 RangeIndex(start=0, stop=4, step=1) obj.dtype #출력 dtype('int64')
Series는 생성시 값에 대응되는 Index를 자동으로 생성된다. (이때 자동으로 생성되는 순서는 0부터 시작해서 1씩 증가)
생성 시 인덱스를 직접 지정해줄수도있다.
1. 시리즈를 생성할 때 직접 index를 넣어주는 방법
2. 파이썬의 딕셔너리를 이용하여 값을 넣는 방법
obj2 = pd.Series([1,2,3,4], index=('a','b','c','d')) print(obj2) #출력 a 1 # b 2 # c 3 # d 4 # dtype: int64 data = {'a':1, 'b':2, 'c':3, 'd':4} obj3 = pd.Series(data) print(obj3) #출력 a 1 # b 2 # c 3 # d 4 # dtype: int64
시리즈의 이름, 인덱스열의 이름도 붙여줄 수 있다.
obj3.name = 'Array_Name' obj3.index.name = 'Alphabet' print(obj3) # 출력 #Alphabet # a 1 # b 2 # c 3 # d 4 # Name: Array_Name, dtype: int64
시리즈의 인덱스만 추출하고 싶을 경우 obj.index
시리즈의 값만을 추출하고 싶을 경우 obj.values
시리즈의 타입을 알고싶을 경우 obj.dtype
1.2 DataFrame
DataFrame의 인자로써는 Numpy의 2차원 배열이나, Python의 딕셔너리형태가 들어가게된다.
import numpy as np import pandas as pd data = {'Alphabet':['a','b','c','d','e'], 'Number':[1,2,3,4,5], 'Float':[1.1,2.2,3.3,4.4,5.5]} df = pd.DataFrame(data)
df를 찍어보면 다음과같은 형태의 표로 나오게 된다.
[그림]
행을 가리키는 것을 Index
열을 가리키는 것을 Columns
라고하여 df.index와 df.columns를 사용하여 행방향, 열방향의 성분을 확인할 수 있다.
그리고 df.values를 사용하면 DataFrame에 해당하는 부분만 2차원 Array의 형태로 얻을 수 있다.
df.index #출력 RangeIndex(start=0, stop=5, step=1) df.columns #출력 Index(['Alphabet', 'Float', 'Number'], dtype='object') df.values #출력 #array([['a', 1.1, 1], # ['b', 2.2, 2], # ['c', 3.3, 3], # ['d', 4.4, 4], # ['e', 5.5, 5]], dtype=object)
그리고 인덱스의 이름, 컬럼의 이름도 정해줄 수 있다.
df.index.name = '이름'
df.columns.name = '이름'
df.index.name = 'Index' df.columns.name ='Columns'
[그림]
DataFrame의 함수중 Describe()를 실행하게 되면 계산이 가능한 컬럼에 한해서 각 컬럼의 평균, 최소/최대값 등 기본통계량을 산출한 결과값을 보여준다.
[그림]
'Python' 카테고리의 다른 글
7. DataFrame 기능 (0) | 2017.08.08 |
---|---|
6. DataFrame 인덱싱 (0) | 2017.08.07 |
4. Numpy를 이용한 데이터 분석 (0) | 2017.08.03 |
3. Numpy 함수 (0) | 2017.08.02 |
2. Numpy 배열 인덱싱 (0) | 2017.08.01 |