-
[Python] pandas dataframe에서 데이터 읽기 : loc, iloc 사용법코딩/파이썬 2023. 8. 5. 08:22반응형
Pandas에서 가장 자주 사용하는 기능이 특정 위치의 데이터를 찾고 수정하는 것입니다. Pandas는 loc와 iloc 등을 이용해 쉽게 특정 행과 칼럼을 찾을 수 있는 방법을 제공합니다. 이번 글에서는 loc와 iloc사용법에 대해서 알아보겠습니다.
1. pandas loc 사용법
- dataframe.loc[ 행, 칼럼명] 형태로 데이터프레임의 정보를 가져올 수 있다.
loc는 'Location based indexing'을 의미하며, 이를 통해 데이터 프레임에서 특정 행이나 열을 선택할 수 있습니다. 이를 사용하면 인덱스 값 또는 열 이름을 기준으로 특정 데이터를 추출할 수 있습니다.
loc의 사용법은 다음과 같습니다.DataFrame.loc[index, column]
- index : 선택하려는 행의 인덱스 레이블.
- column : 선택하려는 열의 이름.
상세한 정의는 아래 pandas 공식 페이지를 참고하세요
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.loc.html
pandas.DataFrame.loc — pandas 2.0.3 documentation
A slice object with labels, e.g. 'a':'f'. Warning Note that contrary to usual python slices, both the start and the stop are included
pandas.pydata.org
실제 예제를 통해 loc를 사용해보겠습니다.
import pandas as pd # 샘플 데이터 프레임 생성 data = {'Name': ['John', 'Anna', 'Peter', 'Linda'], 'Age': [28, 24, 35, 32], 'City': ['New York', 'Paris', 'Berlin', 'London']} df = pd.DataFrame(data) print(df) # loc를 사용한 데이터 선택 print(df.loc[0]) # 첫번째 행 선택 print(df.loc[0, 'Name']) # 첫번째 행의 'Name' 열 선택 print(df.loc[:, 'Age']) # 'Age' 열 전체 선택
순서대로, 실행한 결과입니다.
2. pandas iloc 사용법
- dataframe.iloc[ 행위치, 칼럼위치] 형태로 인덱스, 칼럼 숫자 기반으로 데이터를 찾을 수 있다.
iloc는, loc와 다르게 pandas 데이터 프레임에서 인덱스 숫자를 기반으로 데이터를 선택하는 함수입니다. 즉, 행과 열의 위치를 나타내는 숫자를 사용하여 데이터를 선택하게 됩니다.
iloc의 사용법은 다음과 같습니다.DataFrame.iloc[row_index, column_index]
- row_index : 선택하려는 행의 위치를 나타내는 정수.
- column_index : 선택하려는 열의 위치를 나타내는 정수.
자세한 사용법은 pandas 공식 페이지를 참고하세요.
https://pandas.pydata.org/docs/reference/api/pandas.DataFrame.iloc.html
pandas.DataFrame.iloc — pandas 2.0.3 documentation
A callable function with one argument (the calling Series or DataFrame) and that returns valid output for indexing (one of the above). This is useful in method chains, when you don’t have a reference to the calling object, but would like to base your sel
pandas.pydata.org
아래는 iloc를 이용해 데이터를 가져오는 예제입니다.
print(df) # iloc를 사용한 데이터 선택 print(df.iloc[2]) # 세번째 행 선택 print(df.iloc[2, 0]) # 세번째 행의 첫번째 열 선택 print(df.iloc[:, 1]) # 두번째 열 전체 선택
앞선 예제의 dataframe에서 위 코드를 실행한 결과입니다.
3. 기타 주의할 점
- loc, iloc 슬라이싱( [m:n] )을 사용 시, 끝행의 포함 여부에 주의를 해야 한다. 두 함수의 동작이 다르다.
두 함수 모두 슬라이싱을 지원하며, 이를 통해 행이나 열의 범위를 선택할 수 있습니다. 다만, loc은 끝 값을 포함하는 반면 iloc은 끝 값을 포함하지 않는다는 차이점이 있습니다.
# loc를 사용한 범위 선택 print(df.loc[1:3]) # 두번째 행부터 네번째 행까지 선택 # iloc를 사용한 범위 선택 print(df.iloc[1:3]) # 두번째 행부터 세번째 행까지 선택
실행 결과를 한 번 볼까요? 아래를 보면 원본 데이터프레임에 가져오는 행수가 다름을 확인할 수 있습니다. 혼돈하기 쉬워서 숙지하고 코드를 작성해야 합니다.
이상 loc, iloc 사용법이었습니다.
반응형'코딩 > 파이썬' 카테고리의 다른 글
[Python] pandas csv 읽을 때 칼럼명 지정하기: read_csv() (0) 2023.08.04 [Python] pandas 에 csv 파일 불러오기: pd.read_csv() (0) 2023.08.04 [Python] Pandas에서 결측치 보간하기 - interpolate 함수 이용법 (0) 2023.08.04 [Python] Pandas에서 NaN,NA 대체/제거하기: fillna, dropna (0) 2023.08.04 [Python] 초보자를 위한 cProfile로 코드 최적화하기 (0) 2023.08.01