Python의 열 값을 기반으로 DataFrame 행 선택

Python의 열 값을 기반으로 DataFrame 행 선택
Python

Pandas를 사용하여 열 값으로 DataFrame 필터링

Python에서 데이터 작업을 할 때 Pandas 라이브러리는 데이터 조작 및 분석을 위한 강력한 도구를 제공합니다. 일반적인 작업 중 하나는 특정 열의 값을 기반으로 DataFrame에서 행을 선택하는 것입니다. 이 작업은 SQL 쿼리(SELECT * FROM table WHERE 컬럼_이름 = some_value)와 유사합니다.

이 기사에서는 다양한 방법을 사용하여 Pandas에서 이를 달성하는 방법을 살펴보겠습니다. 단일 값으로 필터링하든 여러 기준으로 필터링하든 Pandas는 이러한 작업을 처리하는 직관적이고 효율적인 방법을 제공합니다. 자세한 내용을 살펴보겠습니다.

명령 설명
pd.DataFrame() 사전이나 기타 데이터 구조에서 DataFrame 객체를 만듭니다.
df[condition] 조건에 따라 DataFrame 행을 필터링하여 기준을 충족하는 행만 반환합니다.
print() 지정된 메시지 또는 DataFrame을 콘솔에 출력합니다.
df['column'] == value 열이 지정된 값과 일치하는 행을 필터링하는 데 사용되는 부울 계열을 만듭니다.
df['column'] >df['column'] > value 열 값이 지정된 값보다 큰 행을 필터링하는 데 사용되는 부울 계열을 만듭니다.
# Comment 스크립트의 일부로 실행되지 않는 코드 내에 설명이나 메모를 추가하는 데 사용됩니다.

Pandas에서 DataFrame 행 선택 구현

제공된 스크립트에서 핵심 작업은 데이터 분석의 일반적인 요구 사항인 특정 열 값을 기반으로 DataFrame의 행을 필터링하는 것입니다. 첫 번째 스크립트는 Pandas 라이브러리를 가져오는 것으로 시작됩니다. import pandas as pd. Pandas는 Python의 강력한 데이터 조작 라이브러리이므로 이는 필수적입니다. 다음으로 다음을 사용하여 샘플 DataFrame을 만듭니다. pd.DataFrame() 이름, 나이, 도시에 대한 데이터가 포함된 사전이 있습니다. 이 구조를 사용하면 표 형식의 데이터를 쉽게 시각화하고 조작할 수 있습니다. 스크립트의 중요한 부분은 다음을 사용하여 행을 필터링하는 것입니다. df[df['city'] == 'New York']. 이 명령은 도시 열의 값이 '뉴욕'인 모든 행을 선택합니다. 결과는 변수에 저장됩니다 , 필터링된 DataFrame을 표시하기 위해 인쇄됩니다.

두 번째 스크립트는 유사한 구조를 따르지만 숫자 조건을 기반으로 행을 필터링하는 데 중점을 둡니다. Pandas를 가져오고 제품, 가격, 수량 열이 포함된 DataFrame을 생성한 후 스크립트는 다음을 사용합니다. df[df['price'] > 150] 가격이 150보다 큰 행을 필터링합니다. 이 명령은 지정된 조건을 충족하는 행만 포함하는 원본 DataFrame의 하위 집합을 생성합니다. 결과는 다음 위치에 저장됩니다. expensive_products 확인을 위해 인쇄되었습니다. 두 스크립트 모두 데이터 조작을 위한 Pandas의 강력함과 단순성을 보여줍니다. 일련의 참/거짓 값을 전달하여 데이터를 필터링하는 방법인 부울 인덱싱을 사용하면 다양한 조건에 따라 데이터의 하위 집합을 효율적으로 선택할 수 있으므로 데이터 분석가와 과학자에게 귀중한 도구가 됩니다.

열 값을 기반으로 DataFrame의 행 필터링

Python - DataFrame 작업에 Pandas 사용

import pandas as pd
# Create a sample DataFrame
data = {
    'name': ['Alice', 'Bob', 'Charlie', 'David', 'Edward'],
    'age': [24, 27, 22, 32, 29],
    'city': ['New York', 'Los Angeles', 'New York', 'Chicago', 'Los Angeles']
}
df = pd.DataFrame(data)

# Select rows where city is New York
ny_rows = df[df['city'] == 'New York']
print(ny_rows)

# Output:
#       name  age      city
# 0    Alice   24  New York
# 2  Charlie   22  New York

열 값을 기반으로 DataFrame 행 쿼리

Python - Pandas를 사용한 고급 필터링

import pandas as pd

# Create a sample DataFrame
data = {
    'product': ['A', 'B', 'C', 'D'],
    'price': [100, 150, 200, 250],
    'quantity': [30, 50, 20, 40]
}
df = pd.DataFrame(data)

# Select rows where price is greater than 150
expensive_products = df[df['price'] > 150]
print(expensive_products)

# Output:
#   product  price  quantity
# 2       C    200        20
# 3       D    250        40

DataFrame 행 선택을 위한 고급 기술

부울 인덱싱을 사용한 기본 필터링 외에도 Pandas는 열 값을 기반으로 행을 선택하는 고급 기술을 제공합니다. 그러한 방법 중 하나는 query() 이 함수를 사용하면 SQL과 유사한 구문을 사용하여 DataFrame 행을 필터링할 수 있습니다. 예를 들어 다음을 사용할 수 있습니다. df.query('age > 25 and city == "New York"') 연령이 25세보다 크고 도시가 뉴욕인 행을 선택합니다. 이 방법을 사용하면 특히 복잡한 조건의 경우 코드를 더 읽기 쉽게 만들 수 있습니다. 또한 Pandas는 다음을 제공합니다. loc[] 그리고 iloc[] 보다 정확한 행 선택을 위한 접근자입니다. 그만큼 loc[] accessor는 레이블 기반입니다. 즉, 레이블이나 부울 배열을 기준으로 행을 필터링할 수 있습니다. 대조적으로, iloc[] accessor는 정수 위치 기반이므로 인덱스 위치를 기준으로 행을 필터링할 수 있습니다.

Pandas의 또 다른 강력한 기능은 다음을 사용하여 DataFrame 행을 필터링하는 기능입니다. isin() 방법. 이 방법은 값 목록을 기반으로 행을 필터링해야 할 때 유용합니다. 예를 들어, df[df['city'].isin(['New York', 'Los Angeles'])] 도시 열 값이 뉴욕 또는 로스앤젤레스인 행을 선택합니다. 또한 다음을 사용하여 여러 조건을 연결할 수 있습니다. & 그리고 | 더 복잡한 필터를 생성하는 연산자입니다. 예를 들어, df[(df['age'] > 25) & (df['city'] == 'New York')] 연령이 25세보다 크고 도시가 뉴욕인 행을 필터링합니다. 이러한 고급 기술은 데이터 필터링을 위한 강력한 프레임워크를 제공하여 Pandas를 데이터 분석 및 조작을 위한 다목적 도구로 만듭니다.

Pandas에서 DataFrame 행 선택에 관한 일반적인 질문

  1. 여러 열 값을 기반으로 DataFrame의 행을 필터링하려면 어떻게 해야 하나요?
  2. 다음을 사용하여 여러 조건을 결합하여 부울 인덱싱을 사용할 수 있습니다. & 그리고 |. 예를 들어: df[(df['age'] > 25) & (df['city'] == 'New York')].
  3. 차이점은 무엇 입니까? loc[] 그리고 iloc[]?
  4. loc[] 라벨 기반이지만 iloc[] 정수 위치 기반입니다. 사용 loc[] 라벨별로 필터링하고 iloc[] 인덱스 위치별로 필터링합니다.
  5. 어떻게 사용할 수 있나요? query() DataFrame 행을 필터링하는 함수?
  6. 그만큼 query() 함수를 사용하면 SQL과 유사한 구문을 사용할 수 있습니다. 예를 들어: df.query('age > 25 and city == "New York"').
  7. 값 목록을 기반으로 행을 필터링할 수 있나요?
  8. 예, 다음을 사용할 수 있습니다. isin() 방법. 예를 들어: df[df['city'].isin(['New York', 'Los Angeles'])].
  9. 문자열 일치를 기반으로 행을 필터링하는 가장 좋은 방법은 무엇입니까?
  10. 당신은 사용할 수 있습니다 str.contains() 방법. 예를 들어: df[df['city'].str.contains('New')].
  11. 열 값이 누락된 행을 선택하려면 어떻게 해야 합니까?
  12. 당신은 사용할 수 있습니다 isna() 방법. 예를 들어: df[df['age'].isna()].
  13. 사용자 정의 함수를 사용하여 행을 필터링하려면 어떻게 해야 합니까?
  14. 당신은 사용할 수 있습니다 apply() 람다 함수를 사용하는 메서드입니다. 예를 들어: df[df.apply(lambda row: row['age'] > 25, axis=1)].
  15. 인덱스 값을 기준으로 행을 필터링할 수 있나요?
  16. 예, 다음을 사용할 수 있습니다. index.isin() 방법. 예를 들어: df[df.index.isin([1, 3, 5])].

DataFrame 행 선택에 대한 주요 내용

열 값을 기반으로 DataFrame에서 행을 선택하는 것은 Pandas를 사용한 데이터 분석의 기본 기술입니다. 부울 인덱싱을 활용하여, loc[], iloc[], query(), 그리고 isin() 방법을 사용하면 효율적인 데이터 필터링이 가능합니다. 이러한 기술을 익히면 데이터 세트를 효과적으로 조작하고 분석하는 능력이 향상됩니다.