Pandas 그룹 및 합계를 집계하는 방법

  1. groupby 와 누적 합계
  2.  멋진 테이블에서 데이터를 재정렬하기위한 pivot()
  3.  Groupby Pandas에 ‘기능’적용
  4. agg()는 열의 총합을 구합니다

우리는 Pandas groupbysum 의 집합을 얻는 것을 보여줄 것이다. 멋진 테이블에 데이터를 정렬하는 피벗 기능과 사용자 정의 함수를 정의하고이를 데이터 프레임에 적용하는 방법도 살펴 보겠습니다. 또한 agg()를 사용하여 총계를 얻습니다.

groupby 와 누적 합계

groupby 방법을 사용하여 누적 합계를 얻을 수 있습니다. 해당 날짜에 날짜, 과일 이름 및 판매가 포함 된 다음 데이터 프레임을 고려하십시오.

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})

과일 당 판매액의 누적 합계를 계산하고 모든 날짜에 대해 다음을 수행 할 수 있습니다.

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})
print (df.groupby(by=['Fruit','Date']).sum().groupby(level=[0]).cumsum())

산출:

Fruit  Date         Sale
Apple  08/09/2018    34
       10/09/2018    46
Banana 08/09/2018    22
       10/09/2018    49

 멋진 테이블에서 데이터를 재정렬하기위한 pivot()

pivot()메소드는 테이블의 row 및 column 속성을 설정할 수 있습니다. 위의 코드를 변경하고 pivot()메소드를 적용하여 멋진 테이블에서 데이터를 재 배열하십시오.

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})    
print (df.groupby(['Fruit','Date'],as_index = False).sum().pivot('Fruit','Date').fillna(0))

산출:

             Sale           
Date   08/09/2018 10/09/2018
Fruit                       
Apple          34         12
Banana         22         27

 Groupby Pandas에 ‘기능’적용

우리는 series 또는 1d array 에서 값의 개수를 얻는 간단한 방법을 만들고 groupby 를 사용하여 각 값의 총 개수를 얻는다:

from pandas import *
d = {"series": Series(['1','2','1','1','4','4','5'])}
df = DataFrame(d)
def get_count(values):
    return len(values)
grouped_count = df.groupby("series").series.agg(get_count)
print(grouped_count)

코드를 실행 한 후 각 값을 연속적으로 발생시키는 다음과 같은 출력을 얻습니다.

산출:

series
1    3
2    1
4    2
5    1
Name: series, dtype: int64

agg()는 열의 총합을 구합니다

agg()를 사용하여 열에 합계 연산을 적용 할 수 있습니다. 다음 코드를 고려하십시오.

import pandas as pd
df = pd.DataFrame({'Date': ['08/09/2018', '10/09/2018', '08/09/2018', '10/09/2018'],
                   'Fruit': ['Apple', 'Apple', 'Banana', 'Banana',],
                   'Sale': [34, 12, 22, 27]})
print(df.groupby(['Fruit'])['Sale'].agg('sum'))

산출:

Fruit
Apple     46
Banana    49
Name: Sale, dtype: int64

관련 문장 - Pandas DataFrame

  • Pandas DataFrame에서 열 이름을 바꾸는 방법
  • Pandas DataFrame 열 헤더를 목록으로 가져 오는 방법
  • comments powered by Disqus