일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파워포인트
- git
- matlab
- 파이썬3
- 아웃룩
- 윈도우10
- Windows11
- Android
- python
- 비주얼베이직
- python3
- pyqt5
- Windows10
- 안드로이드
- 깃
- html
- Excel
- win32com
- windows
- 파이썬GUI
- pythongui
- 문자열
- 오피스
- office
- pandas
- Outlook
- 엑셀
- VBA
- 윈도우11
- 파이썬
Appia의 IT세상
파이썬[Python] Pandas, DataFrame의 인덱스(label)를 이용한 열, 행 선택 방법(loc) 본문
파이썬[Python] Pandas, DataFrame의 인덱스(label)를 이용한 열, 행 선택 방법(loc)
Appia 2020. 4. 3. 07:42실제 Pandas를 사용할 경우 많은 데이터 속에서 원하는 데이터를 선별하는 것이 매우 중요하다고 생각합니다. 그래서 이번에는 각 인덱스(Label)를 이용하여 각 값들을 선택하는 방법에 대해서 살펴보고자 합니다.
DataFrame의 경우 이와 같이 특정 행, 열을 선택할 경우에 다음과 같은 함수들을 사용할 수 있게 지원하고 있습니다. 그중에서 인덱스(lable)를 이용하여 각 데이터를 선택하는 함수는 다음과 같습니다.
loc() - 인덱스 이름(label) 기반으로 선택
그럼 예제를 통해서 각 기능 및 사용 방법에 대해서 살펴보도록 하겠습니다. 그럼 일단, 특정 열(row)만 출력하는 방법을 살펴보겠습니다.
example) 특정 열(row)만 출력
import pandas as pd import numpy as np #numpy를 이용한 matrix형 난수 생성 df = pd.DataFrame(np.random.randn(8, 8), index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D','E','F','G','H']) print("특정 열만 출력하기") print(df.loc['a']) | cs |
result)
특정 열만 출력하기 A -0.443708 B -0.726663 C -0.415140 D -1.836569 E 0.702175 F 0.093123 G -0.899071 H 1.359228 Name: a, dtype: float64 | cs |
이와 같이 loc['a']를 이용하여 a인덱스에 포함된 모든 값들이 표현이 되었습니다. 물론, column들이 열단위로 표시가 되었습니다. 특정 열을 출력하는 경우는 매우 간단합니다. 하지만, 특정 행(column)을 출력하는 경우에는 조금 다를 수 있습니다. 그럼 다음 예시를 살펴보겠습니다.
example) 특정 행(column)만 출력하기
import pandas as pd import numpy as np #numpy를 이용한 matrix형 난수 생성 df = pd.DataFrame(np.random.randn(8, 8), index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D','E','F','G','H']) print("특정 행만 출력하기") print (df.loc[:,'A']) | cs |
result)
특정 행만 출력하기 a 0.656538 b 1.161438 c 0.014831 d -0.114938 e -3.465973 f -1.064604 g -1.411369 h 0.295056 Name: A, dtype: float64 | cs |
이와 같이 loc[]를 이용할 경우에는 행의 경우 반드시, [열,행] 구조로 표현해줘야만 출력이 가능합니다. 그럼 아마도 조금 눈치 있으신 분들은 눈치 챘을 수 있지만, 특정 행의 범위를 출력할수도 있습니다. 그럼 행(column)과 열(row)을 부분적으로 출력 해보도록 하겠습니다.
example) 부분 출력하기
import pandas as pd import numpy as np #numpy를 이용한 matrix형 난수 생성 df = pd.DataFrame(np.random.randn(8, 8), index = ['a','b','c','d','e','f','g','h'], columns = ['A', 'B', 'C', 'D','E','F','G','H']) print("부분 출력") print (df.loc['a':'e','A':'C']) print (df.loc[['a','h'],['A','C']]) | cs |
result)
부분 출력 A B C a 0.141784 -1.017057 0.274731 b 0.636564 -0.393727 -0.386562 c 0.038367 0.678368 0.448248 d -0.207474 -0.079184 -0.302018 e 1.138585 -0.012023 -0.014978 A C a 0.141784 0.274731 h -0.020121 0.851145 | cs |
이와 같이 부분 출력할 경우 조금 주의 하실 부분이 있습니다. 만약에 특정 범위를 선택하실경우에는 loc[ ]안에 입력 하시길 바랍니다. 이와 같이 loc['a':'e','A':'C'] 형태로 행과 열의범위를 정할 수 있습니다. 이 부분만 주의 하신다면 크게 어려움 없이 원하는 데이터를 선택할 수 있습니다.
이번 포스팅에서는 인덱스(Label)만 가지고 데이터를 선별하거나, 추출하는 방법에 대해서 확인하였습니다. 그럼 다음 포스팅에서는 integer 기반으로 각 범위를 지정하여 데이터를 추출하는 방법에 대해서도 살펴보겠습니다.
'Python > Python Pandas' 카테고리의 다른 글
파이썬[Python] Pandas, DataFrame의 날짜를 이용한 Index(Label)만들기 (0) | 2020.04.06 |
---|---|
파이썬[Python] Pandas, DataFrame의 범위를 이용한 열, 행 선택 방법(iloc) (4) | 2020.04.04 |
파이썬[Python] Pandas, DataFrame의 데이터 정렬하기(Sort) (0) | 2020.04.01 |
파이썬[Python] Pandas, DataFrame 루프(Iteration) 돌기 (1) | 2020.03.31 |
파이썬[Python] Pandas, Reindex - Row/Column Label(Index)구조 및 이름 변경하기 (0) | 2020.03.29 |