팬더 groupby() 및 diff()

Fariba Laiq 2023년6월21일
  1. Python의 데이터 그룹화
  2. Pandas에서 diff()와 함께 groupby() 사용
팬더 groupby() 및 diff()

Pandas 라이브러리는 숫자 외에도 텍스트 데이터를 처리하기 위한 완벽한 도구입니다. 많은 데이터 분석 애플리케이션 및 기계 학습 탐색/전처리에서 텍스트 입력을 제외하거나 여기에서 정보를 추출하기를 원할 것입니다.

이를 위해 Pandas에서 제공하는 다양한 내장 기술을 사용하여 DataFrames에서 텍스트 열을 추가, 제거 및 변경할 수 있습니다. 이 문서에서는 데이터를 그룹화하고 그룹화된 값 간의 차이점을 찾는 방법에 대해 간략하게 설명합니다.

Python의 데이터 그룹화

데이터 분석에서는 하나 이상의 열로 레코드를 그룹화해야 하는 경우가 많습니다. 이러한 시나리오의 예는 다음과 같습니다.

  • 각 사업부서의 직원 수를 집계합니다.
  • 각 부서의 남녀 평균 급여를 파악합니다.
  • 다양한 연령대의 직원들의 평균 급여를 파악합니다.

Pandas는 대부분의 그룹화 작업을 쉽게 처리할 수 있는 groupby() 기능을 제공합니다. 그러나 해당 직책을 완료하는 데 도움이 필요한 일부 작업이 있습니다. 다른 방법을 제안해 봅시다.

Pandas의 가장 중요한 기능 중 하나는 groupby()입니다. 이 방법에서 분할을 사용하여 레코드를 그룹화하고 요약하며 결합 전략을 사용합니다.

Pandas에서 diff()와 함께 groupby() 사용

아래 예는 다른 학생의 ID_Number, Stu_NamesMarks가 있는 데이터 프레임을 생성했습니다. 그런 다음 ID_Number가 그룹화하는 연속 날짜 간의 마크 차이를 포함하는 Marks_diff라는 새 열을 만들었습니다.

그룹 변수의 값이 DataFrame의 인접한 행에서 변경될 때 fillna(0)가 Pandas에게 0을 삽입하도록 지시하기 때문에 여기에서 fillna(0)를 사용했습니다.

출력에 표시된 것처럼 Harry와 Petter의 점수 차이는 6.0이고 Daniel과 Ron의 점수 차이는 10입니다.

예제 코드:

import pandas as pd

d1 = pd.DataFrame(
    {
        "ID_Number": ["ID1", "ID1", "ID2", "ID2"],
        "Stu_Names": ["Harry", "Petter", "Daniel", "Ron"],
        "Marks": [72, 78, 80, 90],
    }
)
print(d1)
d1 = d1.sort_values(by=["ID_Number"])
d1["Marks_diff"] = d1.groupby(["ID_Number"])["Marks"].diff().fillna(0)
print(d1)

출력:

    ID_Number Stu_Names  Marks
0       ID1     Harry     72
1       ID1    Petter     78
2       ID2    Daniel     80
3       ID2       Ron     90
    ID_Number Stu_Names  Marks  Marks_diff
0       ID1     Harry     72         0.0
1       ID1    Petter     78         6.0
2       ID2    Daniel     80         0.0
3       ID2       Ron     90       10.0
작가: 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 Dataframe