반응형
먼저 판다스 데이터프레임을 하나 만들어봅시다.
import pandas as pd
L1=[[1,2,3],[4,5,6],[7,8,9],[10,11,12]]
df=pd.DataFrame(L1,columns=['C1','C2','C3'],index=['R1','R2','R3','R4'])
만들어진 데이터프레임은 아래와 같습니다.
>>> df
C1 C2 C3
R1 1 2 3
R2 4 5 6
R3 7 8 9
R4 10 11 12
데이터프레임 인덱싱을 하는 상황은 아래와 같이 나뉩니다
1) 인덱싱 방법 : 인덱스 or 이름
2) 인덱싱 결과 : 행 or 열 or 복합
인덱싱 방법으로 큰 분류를 나누고, 각 방법 안에서 인덱싱 결과를 행, 열, 복합으로 출력하는 방법을 알아봅시다.
1. 인덱스를 사용하여 인덱싱
iloc 라는 메소드를 사용합니다. i는 integer 의 약어, loc 는 location 의 약어입니다. 정수를 이용한 위치를 사용한다는 뜻입니다. 인덱싱 방법은 아래와 같습니다.
df.iloc[행번호, 열번호]
만약 전체 행 또는 전체 열을 원할 경우 행번호 또는 열번호 대신 : 를 입력하면 됩니다.
위에서 정의한 df 라는 데이터프레임의 1행에 접근해봅시다. 인덱스는 1이 아닌 0부터 시작합니다.
>>> df.iloc[0,:]
C1 1
C2 2
C3 3
Name: R1, dtype: int64
출력 결과는 판다스 시리즈입니다.
>>> type(df.iloc[0,:])
<class 'pandas.core.series.Series'>
df의 3,4행에 접근해봅시다. 아래와 같은 두 가지 방법으로 가능합니다.
>>> df.iloc[[2,3],:]
C1 C2 C3
R3 7 8 9
R4 10 11 12
>>> df.iloc[2:3,:]
C1 C2 C3
R3 7 8 9
이번에는 열에 접근해봅시다. 행과 동일하고 자리만 바꿔주면 됩니다. 1,3 열에 접근합시다.
>>> df.iloc[:,[0,2]]
C1 C3
R1 1 3
R2 4 6
R3 7 9
R4 10 12
이번에는 행과 열의 인덱스를 둘다 사용해봅시다. 1행의 1,2열에 접근해봅시다.
>>> df.iloc[0,[0,1]]
C1 1
C2 2
Name: R1, dtype: int64
2. 이름을 사용하여 인덱싱
loc 라는 메소드를 사용합니다. loc 는 location 의 약어입니다. 인덱싱 방법은 아래와 같습니다.
df.iloc[행이름, 열이름]
위에서 정의한 df 라는 데이터프레임의 1행에 접근해봅시다.
>>> df.loc['R1',:]
C1 1
C2 2
C3 3
Name: R1, dtype: int64
df의 3,4행에 접근해봅시다.
>>> df.loc[['R3','R4'],:]
C1 C2 C3
R3 7 8 9
R4 10 11 12
나머지 원리도 동일합니다.
반응형
'머신러닝을 위한 파이썬 기초 > 판다스' 카테고리의 다른 글
[파이썬 판다스] 데이터프레임 결측치 제거하는 방법 (0) | 2023.09.06 |
---|---|
[파이썬 판다스] 데이터프레임 열이름, 행이름 확인, 행 이름 리셋 (0) | 2023.09.06 |
[파이썬 판다스] 데이터프레임 열의 타입을 factor 로 변형 (0) | 2023.09.05 |
[파이썬 판다스] 데이터프레임 각 열의 타입 확인 방법 (dtypes, info) (0) | 2023.09.05 |
[파이썬 판다스] 데이터프레임 행이름,열이름 출력하기 (0) | 2023.09.05 |
댓글