Pandas DataFrames에서 행 필터링
Pandas는 데이터 조작 및 분석을 위한 Python의 강력한 라이브러리입니다. 일반적인 작업은 SQL의 SELECT * FROM 테이블 WHERE column_name = some_value와 유사하게 열 값을 기반으로 DataFrame에서 행을 선택하는 것입니다.
이 가이드에서는 Pandas에서 이를 달성하기 위한 다양한 방법을 안내하여 데이터를 효율적으로 쉽게 필터링할 수 있습니다. 초보자이든 숙련된 사용자이든 이 팁은 데이터 처리 기술을 향상시키는 데 도움이 됩니다.
명령 | 설명 |
---|---|
pd.DataFrame(data) | 데이터 사전에서 DataFrame을 만듭니다. |
df[column_name] | 이름으로 DataFrame의 열에 액세스합니다. |
df[condition] | 열에 적용된 조건을 기준으로 DataFrame을 필터링합니다. |
print(selected_rows) | DataFrame 또는 그 하위 집합을 콘솔에 인쇄합니다. |
df[df['Age'] >df[df['Age'] > 25] | 'Age' 열 값이 25보다 큰 행을 선택합니다. |
df[df['City'] == 'Chicago'] | '도시' 열 값이 '시카고'와 동일한 행을 선택합니다. |
Pandas의 DataFrame 행 선택 이해
제공된 스크립트는 Python의 Pandas 라이브러리를 사용하여 열 값을 기반으로 DataFrame에서 행을 선택하는 방법을 보여줍니다. 첫 번째 스크립트는 다음과 같이 Pandas 라이브러리를 가져오는 것으로 시작됩니다. import pandas as pd 명령. 그런 다음 데이터 사전을 사용하여 샘플 DataFrame을 생성합니다. 이 사전은 다음과 같은 DataFrame으로 변환됩니다. pd.DataFrame(data) 명령. 그런 다음 스크립트는 행 선택을 위한 두 가지 방법을 보여줍니다. 즉, 'Age' 열 값이 25보다 큰 행을 선택하는 것입니다. df[df['Age'] > 25], 'City' 열 값이 'Chicago'인 행을 선택하는 방법은 다음과 같습니다. 삼. 필터링된 DataFrame은 다음을 사용하여 인쇄됩니다. print() 선택한 행을 표시하는 기능입니다.
두 번째 스크립트는 비슷한 구조를 따르지만 다른 데이터와 선택 기준을 사용합니다. '제품', '가격', '재고' 열을 포함한 제품 정보가 포함된 DataFrame을 생성합니다. 'Price'가 200보다 작거나 같은 행이 선택됩니다. df[df['Price'] <= 200], 'Stock'이 40보다 큰 경우 df[df['Stock'] > 40]. 이 스크립트의 목적은 SQL 쿼리를 사용하여 열 값을 기반으로 테이블에서 행을 선택하는 방법과 유사하게 특정 조건을 기반으로 DataFrame 행을 필터링하는 방법을 보여주는 것입니다. 이러한 명령을 이해하고 적용하면 DataFrame의 데이터를 효율적으로 조작하고 분석할 수 있습니다.
Pandas에서 열 값을 사용하여 DataFrame에서 행 선택
Pandas 라이브러리가 포함된 Python
# Importing the necessary library
import pandas as pd
# Creating a sample DataFrame
data = {
'Name': ['Alice', 'Bob', 'Charlie', 'David', 'Eve'],
'Age': [24, 27, 22, 32, 29],
'City': ['New York', 'Los Angeles', 'Chicago', 'Houston', 'Phoenix']
}
df = pd.DataFrame(data)
# Selecting rows where Age is greater than 25
selected_rows = df[df['Age'] > 25]
print(selected_rows)
# Selecting rows where City is 'Chicago'
chicago_rows = df[df['City'] == 'Chicago']
print(chicago_rows)
열 기준에 따라 DataFrame의 데이터 필터링
Pandas 라이브러리가 포함된 Python
# Importing pandas library
import pandas as pd
# Creating a sample DataFrame
data = {'Product': ['A', 'B', 'C', 'D', 'E'],
'Price': [100, 150, 200, 250, 300],
'Stock': [30, 60, 90, 20, 50]}
df = pd.DataFrame(data)
# Selecting rows where Price is less than or equal to 200
affordable_products = df[df['Price'] <= 200]
print(affordable_products)
# Selecting rows where Stock is more than 40
in_stock = df[df['Stock'] > 40]
print(in_stock)
Pandas에서 DataFrame 행을 선택하는 고급 기술
부울 인덱싱을 사용한 기본 필터링 외에도 Pandas는 열 값을 기반으로 행을 선택하는 고급 기술을 제공합니다. 한 가지 강력한 방법은 다음을 사용하는 것입니다. query() 쿼리 표현식을 사용하여 행을 필터링할 수 있는 함수를 사용하면 구문을 더 깔끔하고 종종 더 직관적으로 만들 수 있습니다. 예를 들어, df[df['Age'] > 25], 당신은 쓸 수 있습니다 df.query('Age > 25'). 이 방법은 더 복잡한 조건을 처리하거나 열 이름에 공백이 포함된 경우 특히 유용합니다. 추가적으로, isin() 함수는 값 목록을 기반으로 행을 필터링하려는 경우 유용합니다. 예를 들어 '도시' 열 값이 '시카고' 또는 '뉴욕'인 행을 선택하려면 다음을 사용할 수 있습니다. df[df['City'].isin(['Chicago', 'New York'])].
또 다른 기술은 다음과 같습니다. loc 그리고 iloc 인덱서. 그만큼 loc 인덱서는 레이블 기반이므로 행 레이블과 열 이름을 기반으로 행을 선택할 수 있습니다. iloc 정수 위치 기반이며 행 및 열 번호로 선택할 수 있습니다. 이러한 유연성은 다른 열에 적용된 조건을 기반으로 행을 선택하는 데 특히 유용합니다. 예를 들어, df.loc[df['Age'] > 25, 'Name'] 25세 이상의 개인 이름을 반환합니다. 이러한 방법은 Pandas에서 데이터를 효율적으로 처리하고 분석하기 위한 툴킷을 확장하여 더 읽기 쉽고 유지 관리하기 쉬운 코드를 제공합니다.
DataFrame 행 선택에 대한 일반적인 질문과 답변
- 여러 조건에 따라 행을 선택하려면 어떻게 해야 합니까?
- 당신은 사용할 수 있습니다 query() 다음과 같은 논리 연산자로 조건을 함수화하거나 결합합니다. & 그리고 |. 예를 들어, df[(df['Age'] > 25) & (df['City'] == 'Chicago')].
- 값 목록을 기반으로 행을 필터링할 수 있나요?
- 예, 다음을 사용하세요. isin() 기능. 예를 들어, df[df['City'].isin(['Chicago', 'New York'])].
- 차이점은 무엇 입니까? loc 그리고 iloc?
- loc 라벨 기반이지만 iloc 정수 위치 기반입니다. 사용 loc 행/열 레이블이 있고 iloc 행/열 인덱스를 사용합니다.
- 행을 필터링하는 동안 특정 열을 선택하려면 어떻게 해야 합니까?
- 당신이 사용할 수있는 loc. 예를 들어, df.loc[df['Age'] > 25, ['Name', 'City']].
- 행을 선택할 때 누락된 값을 어떻게 처리합니까?
- 사용 dropna() 누락된 값이 있는 행을 제거하는 함수 또는 fillna() 지정된 값으로 대체합니다.
- 정규식을 사용하여 행을 필터링할 수 있나요?
- 예, str.contains() 기능을 regex=True 매개변수를 사용하면 정규식 패턴을 기반으로 행을 필터링할 수 있습니다. 예를 들어, df[df['Name'].str.contains('^A', regex=True)].
- 인덱스를 기준으로 행을 필터링하려면 어떻게 해야 합니까?
- 당신이 사용할 수있는 loc 인덱스 이름으로. 예를 들어, df.loc[df.index == 'some_index'].
- 열 이름에 공백이나 특수 문자가 포함되어 있으면 어떻게 되나요?
- 사용 query() 백틱을 사용하여 이러한 열 이름을 처리할 수 있는 함수입니다. 예를 들어, df.query('`column name` == value').
DataFrame 행 선택 기술에 대한 최종 생각
Pandas의 열 값을 기반으로 DataFrame에서 행을 선택하는 것은 데이터 조작에 중요한 기술입니다. 부울 인덱싱을 포함하여 논의된 다양한 방법 query(), isin(), 라벨 기반 및 정수 위치 기반 인덱싱 loc 그리고 iloc, 데이터를 효율적으로 필터링하기 위한 강력한 도구를 제공합니다. 이러한 기술을 숙달하면 더 나은 데이터 분석과 더 깨끗하고 유지 관리하기 쉬운 코드가 가능해집니다.