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
    Posted by Config