Pandas Python에서 groupby() 이후 행 필터링

Fariba Laiq 2024년2월15일
  1. 판다 groupby() 메서드
  2. Pandas Python에서 groupby() 뒤의 행 필터링
Pandas Python에서 groupby() 이후 행 필터링

Pandas는 데이터를 분석하고 조작하는 데 사용되는 Python의 오픈 소스 라이브러리입니다. Pandas의 도움으로 데이터 프레임을 만들고 다양한 작업을 수행하여 데이터를 추출하거나 검색할 수 있습니다.

Pandas 모듈을 사용하여 데이터를 추출, 필터링 및 정렬할 수도 있습니다. 이 기사에서는 groupby() 작업을 수행한 후 데이터 세트에서 행을 필터링하는 방법을 살펴봅니다.

판다 groupby() 메서드

Pandas 모듈의 groupby() 메서드는 데이터를 범주로 정렬하고 추가 작업을 적용하는 데 도움이 됩니다. 이 방법은 데이터를 집계하는 효율적인 방법이기도 합니다.

몇 가지 기준이 정의된 dataframe.groupby()를 사용하여 데이터 프레임의 데이터를 조작할 수 있습니다. 이제 groupby() 메서드를 다음 데이터 프레임에 적용해 보겠습니다.

다음 코드를 사용하여 이 데이터 프레임을 생성합니다.

예제 코드:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
print(data_frame)

출력:

예제 Pandas 데이터 프레임

이제 groupby()를 사용하여 이 데이터를 국가별로 그룹화하겠습니다.

다음 스니펫에서는 각 항목을 범주로 정렬하는 데 사용되는 groupby() 메서드에 대한 기준을 추가했습니다. 그런 다음 루프를 사용하여 그룹화된 데이터를 인쇄합니다.

예제 코드:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country")
for one in grouped:
    print(one, "\n")

출력:

Pandas groupby() 메서드 사용

Pandas Python에서 groupby() 뒤의 행 필터링

이제 groupby()의 작동 방식을 이해했으므로 그룹화된 데이터에 필터를 추가로 적용하는 방법을 계속 알 수 있습니다. 위의 예제 데이터 프레임을 계속 사용하여 생물학에서 73을 획득한 학생에 대한 국가 및 기타 정보를 필터링한다고 가정합니다.

groupby() 바로 다음에 apply() 메서드를 사용하여 이를 필터링합니다.

예제 코드:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country").apply(lambda x: x[x["Biology"] == 73])
print(grouped)

출력:

groupby() 메서드 이후 Pandas 필터 행 - 출력 1

apply() 메서드에서 국가를 지정하여 특정 국가에 속한 모든 학생 세부 정보를 인쇄할 수도 있습니다. 이 코드는 데이터 프레임에서 두 행을 반환합니다.

예제 코드:

import pandas as pd

data = {
    "Student_Name": ["Anil", "Suharwardy", "Fatina", "John", "Karen"],
    "Country": ["India", "India", "Pakistan", "America", "America"],
    "Biology": [68, 73, 87, 58, 78],
    "Chemistry": [78, 98, 89, 73, 87],
}
data_frame = pd.DataFrame(data=data)
grouped = data_frame.groupby("Country").apply(lambda x: x[x["Country"] == "America"])
print(grouped)

출력:

groupby() 메서드 이후 Pandas 필터 행 - 출력 2

결론적으로 Pandas 모듈은 포괄적인 도구와 스마트한 방법으로 데이터 조작을 충분히 쉽고 효율적으로 만들었습니다. 위에서 자세히 설명한 Pandas groupby()apply() 메서드를 사용하여 데이터 프레임을 쉽게 그룹화하고 필터링할 수 있습니다.

그러나 Pandas는 매우 광범위한 모듈이므로 데이터를 필터링하고 정렬하는 방법은 여러 가지가 있다는 점에 유의해야 합니다. 우리는 항상 고유한 개발 요구 사항에 가장 적합한 것을 선택할 수 있습니다.

작가: Fariba Laiq
Fariba Laiq avatar Fariba Laiq avatar

I am Fariba Laiq from Pakistan. An android app developer, technical content writer, and coding instructor. Writing has always been one of my passions. I love to learn, implement and convey my knowledge to others.

LinkedIn

관련 문장 - Pandas GroupBy