Pandas: 백분율을 사용하여 피벗 테이블을 만드는 방법


다음 구문을 사용하여 특정 열에 대한 합계의 백분율을 표시하는 Pandas의 피벗 테이블에 열을 추가할 수 있습니다.

 my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

이 특정 구문은 포인트 열의 총 값의 백분율을 표시하는 my_table 이라는 피벗 테이블에 % 포인트 라는 새 열을 추가합니다.

다음 예에서는 실제로 이 구문을 사용하는 방법을 보여줍니다.

예: 백분율을 사용하여 Pandas 피벗 테이블 만들기

다양한 농구 선수가 득점한 점수를 보여주는 다음과 같은 pandas DataFrame이 있다고 가정해 보겠습니다.

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'B', 'B', 'B', 'B'],
                   ' position ': ['Guard', 'Guard', 'Forward', 'Forward',
                                'Guard', 'Guard', 'Forward', 'Forward'],
                   ' points ': [22, 30, 14, 15, 19, 30, 23, 20]})

#view DataFrame
print (df)

  team position points
0 A Guard 22
1A Guard 30
2 A Forward 14
3 A Forward 15
4 B Guard 19
5 B Guard 30
6 B Forward 23
7 B Forward 20

ivot_table() 함수를 사용하여 팀과 포지션별 포인트 합계를 보여주는 피벗 테이블을 만들 수 있습니다.

 #create pivot table to calculate sum of points by team and position
my_table = pd. pivot_table (df, index=[' team ', ' position '], aggfunc=' sum ')

#view pivot table
print (my_table)

               points
team position        
A Forward 29
     Guard 52
B Forward 43
     Guard 49

결과에서 우리는 다음을 볼 수 있습니다:

  • A팀 공격수들은 총 29 득점을 기록했다.
  • A팀 가드들은 총 52 득점을 기록했다.
  • B팀 공격수들은 총 43 득점을 기록했다.
  • B팀 가드들은 총 49 득점을 기록했다.

그런 다음 다음 구문을 사용하여 각 행의 총점 비율을 표시하는 % 포인트 라는 새 열을 추가할 수 있습니다.

 #add column that displays points as a percentage of total points
my_table[' % points '] = (my_table[' points ']/my_table[' points ']. sum ())* 100

#view updated pivot table
print (my_table)

               points % points
team position                   
A Forward 29 16.763006
     Guard 52 30.057803
B Forward 43 24.855491
     Guard 49 28.323699

이제 새로운 % 포인트 열에는 포인트 값이 총 포인트의 백분율로 표시됩니다.

또한 round() 함수를 사용하여 백분율 값을 특정 소수 자릿수로 반올림할 수 있습니다.

 #add column that displays points as a percentage of total points (rounded)
my_table[' % points '] = round ((my_table[' points ']/my_table[' points ']. sum ())* 100 , 2 )

#view updated pivot table
print (my_table)

               points % points
team position                  
A Forward 29 16.76
     Guard 52 30.06
B Forward 43 24.86
     Guard 49 28.32

이제 백분율 값이 소수점 이하 두 자리로 반올림됩니다.

참고 : 여기에서 pandasivot_table() 함수에 대한 전체 문서를 찾을 수 있습니다.

추가 리소스

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

Pandas: 피벗 테이블에 필터를 추가하는 방법
Pandas: 열의 값을 기준으로 피벗 테이블을 정렬하는 방법
Pandas: 값의 합계가 포함된 피벗 테이블을 만드는 방법

의견을 추가하다

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