Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Pandas의 부울 인덱싱


부울 인덱싱은 부울 벡터를 사용하여 DataFrame에서 데이터를 선택하는 데 도움이 됩니다. 부울 색인을 사용하려면 부울 색인이 있는 DataFrame이 필요합니다. 부울 인덱싱을 수행하는 방법을 살펴보겠습니다.

  • 데이터 사전을 만듭니다.
  • 부울 인덱스를 벡터로 사용하여 DataFrame 개체로 변환합니다.
  • 이제 부울 인덱싱을 사용하여 데이터에 액세스합니다.

아이디어를 얻으려면 아래 예를 참조하십시오.

예시

import pandas as pd
# data
data = {
   'Name': ['Hafeez', 'Srikanth', 'Rakesh'],
   'Age': [19, 20, 19]
}
# creating a DataFrame with boolean index vector
data_frame = pd.DataFrame(data, index = [True, False, True])
print(data_frame)

출력

위의 프로그램을 실행하면 다음과 같은 결과를 얻을 수 있습니다.

          Name   Age
True    Hafeez   19
False Srikanth   20
True    Rakesh   19

이제 loc[], iloc[], ix[] 메서드에 부울 값을 전달하여 DataFrame에 액세스할 수 있습니다. 모두 봅시다.

예시

# accessing using .loc()
print(data_frame.loc[True])

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

       Name  Age
True Hafeez   19
True Rakesh   19

예시

# accessing using .iloc()
print(data_frame.iloc[1]) # iloc methods takes only integers so, we are passing 1 i
nsted of True. Both are same.

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

Name Srikanth
Age 20
dtype: object

예시

# accessing using .ix[]
# we can pass both boolean or integer values to .ix[]
print(data_frame.ix[True])
print()
print(data_frame.ix[1])

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

         Name Age
True   Hafeez 19
True   Rakesh 19

Name   Srikanth
Age       20
dtype: object

부울 인덱스를 사용하는 또 다른 방법은 부울 벡터를 DataFrame에 직접 전달하는 것입니다. True 값을 가진 모든 행을 인쇄합니다. 한 가지 예를 들어보겠습니다.

예시

import pandas as pd
# data
data = {
   'Name': ['Hafeez', 'Srikanth', 'Rakesh'],
   'Age': [19, 20, 19]
}
# creating a DataFrame with boolean index vector
data_frame = pd.DataFrame(data)
print(data_frame)

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다.

      Name    Age
0   Hafeez    19
1 Srikanth    20
2   Rakesh    19

이제 부울 벡터를 DataFrame에 전달하여 데이터에 액세스할 수 있습니다.

예시

# passing boolean vector to data_frame index
print(data_frame[[True, True, False]])

출력

위의 코드를 실행하면 다음과 같은 결과를 얻을 수 있습니다. True인 행만 있습니다.

      Name Age
0   Hafeez 19
1 Srikanth 20

결론

부울 인덱스에 대해 의문점이 있으면 댓글 섹션에 알려주십시오.