Pandas에서 특정 열이 주어진 조건을 만족하는 모든 행의 색인을 얻는 방법

Suraj Joshi 2023년1월30일
  1. 특정 열이 주어진 조건을 만족하는 모든 행의 색인을 가져 오는 간단한 색인 작업
  2. 특정 열이 주어진 조건을 만족하는 모든 행의 인덱스를 가져 오는np.where()메소드
  3. 특정 열이 주어진 조건을 만족하는 모든 행의 인덱스를 가져 오는pandas.DataFrame.query()
Pandas에서 특정 열이 주어진 조건을 만족하는 모든 행의 색인을 얻는 방법

간단한 인덱싱 작업을 사용하여 특정 열이 Pandas의 주어진 조건을 만족하는 모든 행의 인덱스를 얻을 수 있습니다. NumPy 패키지의where()메소드와 DataFrame 객체의query()메소드를 사용하여 인덱스를 찾을 수도 있습니다.

특정 열이 주어진 조건을 만족하는 모든 행의 색인을 가져 오는 간단한 색인 작업

간단한 인덱싱 작업을 사용하면 특정 열이 주어진 조건을 만족하는 행의 인덱스를 가져 오는 작업을 수행 할 수 있습니다.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = df[df["Sales"] >= 300].index.tolist()
print(reqd_Index)

출력:

[1, 2, 4, 5]

여기서 df['Sales']>=300Sales열의 값이 300 이상인 경우 요소가 True 인 일련의 부울 값을 제공합니다.

df[df['Sales']>=300].index를 사용하여Sales 값이 300보다 크거나 같은 행의 인덱스를 검색 할 수 있습니다.

마지막으로tolist()메소드는 모든 인덱스를리스트로 변환합니다.

특정 열이 주어진 조건을 만족하는 모든 행의 인덱스를 가져 오는np.where()메소드

np.where()는 조건을 입력으로 받아 주어진 조건을 만족하는 요소의 인덱스를 반환합니다. 따라서 우리는np.where()를 사용하여 특정 열이 주어진 조건을 만족시키는 모든 행의 인덱스를 얻을 수 있습니다.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_Index = list(np.where(df["Sales"] >= 300))
print(reqd_Index)

출력:

[array([1, 2, 4, 5])]

Sales열의 값이 300보다 크거나 같은 모든 행의 인덱스를 출력합니다.

특정 열이 주어진 조건을 만족하는 모든 행의 인덱스를 가져 오는pandas.DataFrame.query()

pandas.DataFrame.query()는 제공된 쿼리 표현식으로 인해 DataFrame을 반환합니다. 이제 DataFrame의index 속성을 사용하여 특정 열이 주어진 조건을 만족하는 모든 행의 인덱스를 반환 할 수 있습니다.

import pandas as pd
import numpy as np

dates = ["April-10", "April-11", "April-12", "April-13", "April-14", "April-16"]
sales = [200, 300, 400, 200, 300, 300]
prices = [3, 1, 2, 4, 3, 2]

df = pd.DataFrame({"Date": dates, "Sales": sales, "Price": prices})

reqd_index = df.query("Sales == 300").index.tolist()
print(reqd_index)

출력:

[1, 4, 5]

특정 열이 주어진 조건Sales == 300을 만족하는 모든 행의 인덱스 목록을 반환합니다.

작가: Suraj Joshi
Suraj Joshi avatar Suraj Joshi avatar

Suraj Joshi is a backend software engineer at Matrice.ai.

LinkedIn

관련 문장 - Pandas DataFrame

관련 문장 - Pandas DataFrame Row

관련 문장 - Pandas DataFrame Column