Data Analysis & EDA

loc 와 iloc 의 차이 (첫 번째 행을 컬럼(column)으로 지정하기)

심전코 2022. 4. 11. 01:31

 

데이터프레임을 다루다 보면 수많은 열과 행이 존재한다.

 

그 중 내가 원하는 데이터만 선택하고 싶은데 어떻게 해야할까?

 

 

loc 와 iloc 의 차이

정리가 잘 되어있는 자료를 찾았다.

아래 코드를 코랩을 통해 실행시켜보자.

 

loc

: label을 통해서 값을 찾는다.

name_index = ['하나의 row 이름',
              'row 이름의 리스트',
              'row 이름의 리스트 슬라이싱',
              '하나의 column 이름',
              'column 이름의 리스트',
              'column 이름의 리스트 슬라이싱'
             ]
shape = ['df.loc["row4"]',
         'df.loc[["row4,"row5,"row3"]]',
         'df.loc["row2":"row5"]',
         'df.loc[:,"col1"]',
         'df.loc[:,["col4","col6","col3"]]',
         'df.loc[:,"col2":"col5"]'
        ]
shorten = ['',
           '',
           'df["row2":"row5"]',
           'df["col1"]',
           'df[["col4","col6","col3"]]',
           ''
          ]
dct1 = {
    '이름으로 인덱싱하기': name_index,
    '기본 형태': shape,
    '단축 형태': shorten
}

indexing = pd.DataFrame(dct1)
indexing

 

iloc

: integer position을 통해 값을 찾는다.

name_index1 = ['하나의 row 이름',
              'row 위치의 리스트',
              'row 위치의 리스트 슬라이싱',
              '하나의 column 위치',
              'column 위치의 리스트',
              'column 위치의 리스트 슬라이싱'
             ]
shape1 = ['df.iloc[8]',
         'df.iloc[[4,5,3]]',
         'df.iloc[2:5]',
         'df.iloc[:,3]',
         'df.iloc[:,[3,5,6]]',
         'df.loc[:,3:7]'
        ]
shorten1 = ['',
           '',
           'df[2:5]',
           '',
           '',
           ''
          ]
dct2 = {
    '위치로 인덱싱하기': name_index1,
    '기본 형태': shape1,
    '단축 형태': shorten1
}

indexing1 = pd.DataFrame(dct2)
indexing1

 

연습문제

앞선 데이터로 이어서 진행하겠다.

# 첫번째 행을 column으로 지정하기
df1 = df.rename(columns=df.iloc[0]).head(5)
df1

적용 전

 

적용 후