Pandas와 loc: 차이점은 무엇인가요?
Pandas DataFrame의 행과 열을 선택할 때 .loc 및 .at는 일반적으로 사용되는 두 가지 기능입니다.
두 기능의 미묘한 차이점은 다음과 같습니다.
- .loc는 여러 행과 열을 입력 인수로 사용할 수 있습니다.
- .at는 단일 행과 열만 입력 인수로 사용할 수 있습니다.
다음 예는 다음 pandas DataFrame에서 실제로 각 함수를 사용하는 방법을 보여줍니다.
import pandas as pd #createDataFrame df = pd. DataFrame ({' team ': ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H'], ' points ': [18, 22, 19, 14, 14, 11, 20, 28], ' assists ': [5, 7, 7, 9, 12, 9, 9, 4], ' rebounds ': [11, 8, 10, 6, 6, 5, 9, 12]}) #view DataFrame print (df) team points assists rebounds 0 A 18 5 11 1 B 22 7 8 2 C 19 7 10 3 D 14 9 6 4 E 14 12 6 5 F 11 9 5 6 G 20 9 9 7:28 4 12
예 1: Pandas에서 loc를 사용하는 방법
다음 코드는 .loc를 사용하여 포인트 열의 인덱스 위치 0에 있는 DataFrame의 값에 액세스하는 방법을 보여줍니다.
#select value located at index position 0 of the points column
df. loc [0, ' points ']
18
이는 18 값을 반환합니다.
다음 코드는 .loc를 사용하여 인덱스 값 0과 4 사이의 행과 포인트 및 어시스트 열에 액세스하는 방법을 보여줍니다.
#select rows between index values 0 and 4 and columns 'points' and 'assists'
df. loc [0:4, [' points ', ' assists ']]
assist points
0 18 5
1 22 7
2 19 7
3 14 9
4 14 12
단일 값에 액세스하든 행과 열 그룹에 액세스하든 .loc 함수는 두 가지 모두를 수행할 수 있습니다.
예 2: Pandas에서 at을 사용하는 방법
다음 코드는 .at를 사용하여 포인트 열의 인덱스 위치 0에 있는 DataFrame의 값에 액세스하는 방법을 보여줍니다.
#select value located at index position 0 of the points column
df. at [0, ' points ']
18
이는 18 값을 반환합니다.
그러나 at을 사용하여 인덱스 값 0과 4 사이의 행과 포인트 및 어시스트 열에 액세스하려고 한다고 가정해 보겠습니다.
#try to select rows between index values 0 and 4 and columns 'points' and 'assists'
df. at [0:4, [' points ', ' assists ']]
TypeError : unhashable type: 'list'
at 함수가 여러 행이나 여러 열을 입력 인수로 사용할 수 없기 때문에 오류가 발생합니다.
결론
Pandas DataFrame의 단일 값에 액세스하려는 경우 loc 및 at 함수가 제대로 작동합니다.
그러나 행과 열 그룹에 액세스하려는 경우 loc 함수만 그렇게 할 수 있습니다.
관련 항목:Pandas loc vs iloc: 차이점은 무엇인가요?
추가 리소스
다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
Pandas Loc을 사용하여 여러 조건에 따라 행을 선택하는 방법
Pandas에서 열 값을 기준으로 행을 선택하는 방법
Pandas에서 인덱스로 행을 선택하는 방법