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의 단일 값에 액세스하려는 경우 locat 함수가 제대로 작동합니다.

그러나 행과 열 그룹에 액세스하려는 경우 loc 함수만 그렇게 할 수 있습니다.

관련 항목:Pandas loc vs iloc: 차이점은 무엇인가요?

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas Loc을 사용하여 여러 조건에 따라 행을 선택하는 방법
Pandas에서 열 값을 기준으로 행을 선택하는 방법
Pandas에서 인덱스로 행을 선택하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다