6. DataFrame 인덱싱

    1. 열 단위 인덱싱

    import numpy as np
    import pandas as pd
    
    data = {'year' = [2011, 2012,  2013,  2014,  2015],
                'number' = [1,2,3,4,5],
                'points' = [1.1,2.2,3.3,4.4,5.5]}
    
    df = pd.DataFrame(data, index=['one','two','three','four','five'], columns=['year','number','points','penalty'])
    
    #열 단위 인덱싱
    df['year']
    df.year
    
    # 여러값을 인덱싱 가능하다.
    df['year', 'number']
    df[0:3]
    
    #특정 열에 값을 대입하는것도 가능하다.
    df['penalty'] = 0.5
    df['penalty'] = [0.1, 0.2, 0.3, 0.4, 0.5]
    df['penalty'] = np.arange(5)
    
    #다른 배열에 있는 값을 넣는것도 가능하다.
    val = pd.Series([1.1, 2.2, 3.3], index=['two','four','five'])
    
    # dobt라는 열을 생성해서 val의 값을 넣는것
    # 이때 값이 3개만 들어가는데 index에 맞춰서 two에는 1.1 four에는 2.2 five에는 3.3이 들어가게된다.
    # 그 외에 명시되지 않은 값들은 NaN(Not a Number)가 들어가게된다.
    df['dobt'] = val
    
    
    

    이 외에도 열끼리의 계산한 값들을 새 열에 추가해서 넣을수도있고

    불리언 마스크를 사용하여 새 열에 추가하여 넣을 수도 있다.


    2. 행 단위 인덱싱



    import numpy as np
    import pandas as pd
    
    data = {'year' = [2011, 2012,  2013,  2014,  2015],
                'number' = [1,2,3,4,5],
                'points' = [1.1,2.2,3.3,4.4,5.5]}
    
    df = pd.DataFrame(data, index=['one','two','three','four','five'], columns=['year','number','points','penalty'])
    
    #행 선택을 할때는 .loc[]를 사용한다.
    df.loc['one']
    df.loc['two':'four']
    
    # loc는 행 뿐만아니라 열 또한 선택할 수 있다. 사용방법은 Numpy와 같다.
    df.loc['two':'four', 'points']
    df.loc[:, ['year','names']]
    
    # 또한 loc로 새 행을 추가해 값을 넣을 수도있다.
    df.loc['six', :] = [2016, 6, 6.6]
    
    # 이번엔 인덱스로 행을 가져오는 iloc이 있다.
    df.iloc[0] #df.loc['one']과 같다
    df.iloc[1, 4] #df.loc['two':'four']와 같다
    
    




    'Python' 카테고리의 다른 글

    7. DataFrame 기능  (0) 2017.08.08
    5. Pandas 자료구조  (0) 2017.08.03
    4. Numpy를 이용한 데이터 분석  (0) 2017.08.03
    3. Numpy 함수  (0) 2017.08.02
    2. Numpy 배열 인덱싱  (0) 2017.08.01
    Posted by Config