팬더의 누적 수를 계산하는 방법


다음 방법을 사용하여 Pandas DataFrame의 누적 숫자를 계산할 수 있습니다.

방법 1: 그룹별 누적 집계

 df[' cum_count '] = df. groupby (' col1 '). cumcount ()

방법 2: 여러 그룹의 누적 계정

 df[' cum_count '] = df. groupby ([' col1 ', ' col2 ']). cumcount ()

다음 예에서는 다음 pandas DataFrame에서 실제로 각 메서드를 사용하는 방법을 보여줍니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'G', 'F', 'G', 'G', 'F', 'F'],
                   ' points ': [14, 22, 25, 34, 30, 12, 10, 18]})

#view DataFrame
print (df)

  team position points
0 AG 14
1 AG 22
2 AG 25
3AF 34
4 BG 30
5 BG 12
6 BF 10
7 BF 18

예시 1: Pandas의 그룹별 누적 계산

다음 구문을 사용하여 DataFrame에 있는 각 의 누적 수를 표시하는 team_cum_count 라는 새 열을 만들 수 있습니다.

 #calculate cumulative count by team
df[' team_cum_count '] = df. groupby (' team '). cumcount ()

#view updated DataFrame
print (df)

  team position points team_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 3
4 BG 30 0
5 BG 12 1
6 BF 10 2
7 BF 18 3

team_cum_count 라는 새 열에는 0 값부터 시작하는 각 의 누적 수가 포함됩니다.

1부터 시작하려면 줄 끝에 1을 추가하면 됩니다.

 #calculate cumulative count (starting at 1) by team
df[' team_cum_count '] = df. groupby (' team '). cumcount () + 1

#view updated DataFrame
print (df)

  team position points team_cum_count
0 AG 14 1
1 AG 22 2
2 AG 25 3
3 AF 34 4
4 BG 30 1
5 BG 12 2
6 BF 10 3
7 BF 18 4

team_cum_count 라는 새 열에는 값 1부터 시작하는 각 의 누적 수가 포함됩니다.

예시 2: Pandas에서 그룹별 누적 개수 계산

다음 구문을 사용하여 DataFrame의 각 위치 에 대한 누적 수를 표시하는 team_pos_cum_count 라는 새 열을 만들 수 있습니다.

 #calculate cumulative count by team
df[' team_pos_cum_count '] = df. groupby ([' team ', ' position ']). cumcount () 

#view updated DataFrame
print (df)

  team position points team_pos_cum_count
0 AG 14 0
1 AG 22 1
2 AG 25 2
3 AF 34 0
4 BG 30 0
5 BG 12 1
6 BF 10 0
7 BF 18 1

team_pos_cum_count 라는 새 열에는 값 0부터 시작하는 각 포지션 의 누적 수가 포함됩니다.

참고 : 여기에서 pandas의 cumcount 함수에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

다음 튜토리얼에서는 Pandas에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

Pandas에서 특정 열을 합산하는 방법
Pandas의 조건에 따라 열을 합산하는 방법
팬더에서 역누적합을 계산하는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다