팬더: size()와 함께 groupby()를 사용하는 방법


pandas의 groupby()size() 함수와 함께 다음 메서드를 사용하여 그룹당 발생 횟수를 계산할 수 있습니다.

방법 1: 변수별로 그룹화된 발생 횟수 계산

 df. groupby (' var1 '). size ()

방법 2: 여러 변수로 그룹화된 발생 횟수 계산

 df. groupby ([' var1 ', ' var2 ']). size ()

방법 3: 여러 변수로 그룹화되고 숫자로 정렬된 발생 횟수 계산

 df. groupby ([' var1 ', ' var2 ']). size (). sort_values (ascending= False )

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

 import pandas as pd

#createDataFrame
df = pd. DataFrame ({' team ': ['A', 'A', 'A', 'A', 'A', 'B', 'B', 'B', 'B', 'B'],
                   ' position ': ['G', 'G', 'F', 'F', 'F', 'G', 'G', 'G', 'G', 'F'],
                   ' points ': [15, 22, 24, 25, 20, 35, 34, 19, 14, 12]})

#view DataFrame
print (df)

  team position points
0 AG 15
1 AG 22
2 AF 24
3 AF 25
4 AF 20
5 BG 35
6 BG 34
7 BG 19
8 BG 14
9 BF 12

예시 1: 변수별로 그룹화된 횟수 발생

다음 코드는 groupby()size() 함수를 사용하여 열의 값 발생 횟수를 계산하는 방법을 보여줍니다.

 #count occurrences of each value in team column
df. groupby (' team '). size ()

team
AT 5
B5
dtype: int64

결과를 보면 컬럼에 A, B 값이 모두 5 번 나타나는 것을 알 수 있습니다.

예 2: 여러 변수로 그룹화된 개수 발생

다음 코드는 groupby()size() 함수를 사용하여 포지션 열의 각 값 조합에 대한 값의 발생 횟수를 계산하는 방법을 보여줍니다.

 #count occurrences of values for each combination of team and position
df. groupby ([' team ', ' position ']). size ()

team position
AF3
      G2
BF 1
      G4
dtype: int64

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

  • A팀과 F포지션이 3 번 등장합니다.
  • A 팀과 G 포지션이 두 번 등장합니다.

등등.

예시 3: 여러 변수로 그룹화된 발생 횟수 계산 및 정렬

다음 코드는 groupby()size() 함수를 사용하여 직위 열의 각 값 조합에 대한 값의 발생 횟수를 계산한 후 개수별로 정렬하는 방법을 보여줍니다.

 #count occurrences for each combination of team and position and sort
df. groupby ([' team ', ' position ']). size (). sort_values (ascending= False )

team position
BG 4
AF3
      G2
BF 1
dtype: int64

출력에는 직위 값의 각 조합 수가 표시되며, 내림차순으로 개수별로 정렬됩니다.

참고 : 숫자를 기준으로 오름차순으로 정렬하려면 sort_values() 함수에서 오름차순=False를 제거하면 됩니다.

추가 리소스

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

Pandas GroupBy를 사용하여 고유한 값을 계산하는 방법
Pandas Groupby에 기능을 적용하는 방법
Pandas GroupBy에서 막대 그래프를 만드는 방법

의견을 추가하다

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