팬더 그룹별 카테고리에 따라 데이터를 그룹화하고 카테고리에 함수를 적용하는 데 사용됩니다. 또한 데이터를 효율적으로 집계하는 데 도움이 됩니다. Pandas groupby()는 다양한 변형이 가능한 매우 강력한 기능입니다. 이는 데이터프레임을 일부 기준에 따라 분할하는 작업을 정말 쉽고 효율적으로 만듭니다.
팬더 dataframe.groupby()
팬더 데이터프레임.그룹바이() 기능은 일부 기준에 따라 데이터를 그룹으로 분할하는 데 사용됩니다. 팬더 객체는 임의의 축에서 분할될 수 있습니다. 그룹화의 추상적 정의는 레이블을 그룹 이름에 매핑하는 것입니다.
통사론: DataFrame.groupby(by=None, axis=0, level=None, as_index=True, sort=True, group_keys=True, squeeze=False, **kwargs)
매개변수:
- 에 의해 : 매핑, 함수, str 또는 반복 가능
- 축 : 정수, 기본값 0
- 수준 : 축이 MultiIndex(계층적)인 경우 특정 수준별로 그룹화합니다.
- as_index : 집계된 출력의 경우 그룹 레이블을 인덱스로 사용하여 객체를 반환합니다. DataFrame 입력에만 해당됩니다. as_index=False는 사실상 SQL 스타일 그룹화된 출력입니다.
- 종류 : 그룹 키를 정렬합니다. 이 기능을 끄면 더 나은 성능을 얻을 수 있습니다. 이는 각 그룹 내의 관찰 순서에 영향을 미치지 않습니다. groupby는 각 그룹 내의 행 순서를 유지합니다.
- 그룹_키: 적용을 호출할 때 그룹 키를 인덱스에 추가하여 조각을 식별합니다.
- 짜내다 : 가능하면 반환 유형의 차원을 줄이고, 그렇지 않으면 일관된 유형을 반환합니다.
반품 : GroupBy 개체
사용된 데이터 세트: 코드에 사용된 CSV 파일에 대한 링크를 보려면 여기
예시 1: 사용 그룹바이() 팀을 기준으로 데이터를 그룹화하는 기능입니다.
파이썬3
# importing pandas as pd> import> pandas as pd> # Creating the dataframe> df>=> pd.read_csv(>'nba.csv'>)> # Print the dataframe> print>(df.head())> |
>
전자금융의 한계
>
산출:
Name Team Number Position Age Height Weight College Salary 0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0 1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0 2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN 3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0 4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0>
이제 그룹바이() 기능.
파이썬3
문자열의 int
# applying groupby() function to> # group the data on team value.> gk>=> df.groupby(>'Team'>)> # Let's print the first entries> # in all the groups formed.> gk.first()> |
>
>
출력 :
Name Number Position Age Height Weight College Salary Team Atlanta Hawks Kent Bazemore 24.0 SF 26.0 6-5 201.0 Old Dominion 2000000.0 Boston Celtics Avery Bradley 0.0 PG 25.0 6-2 180.0 Texas 7730337.0 Brooklyn Nets Bojan Bogdanovic 44.0 SG 27.0 6-8 216.0 Oklahoma State 3425510.0 Charlotte Hornets Nicolas Batum 5.0 SG 27.0 6-8 200.0 Virginia Commonwealth 13125306.0 Chicago Bulls Cameron Bairstow 41.0 PF 25.0 6-9 250.0 New Mexico 845059.0 Cleveland Cavaliers Matthew Dellavedova 8.0 PG 25.0 6-4 198.0 Saint Mary's 1147276.0 Dallas Mavericks Justin Anderson 1.0 SG 22.0 6-6 228.0 Virginia 1449000.0 Denver Nuggets Darrell Arthur 0.0 PF 28.0 6-9 235.0 Kansas 2814000.0 Detroit Pistons Joel Anthony 50.0 C 33.0 6-9 245.0 UNLV 2500000.0 Golden State Warriors Leandro Barbosa 19.0 SG 33.0 6-3 194.0 North Carolina 2500000.0 Houston Rockets Trevor Ariza 1.0 SF 30.0 6-8 215.0 UCLA 8193030.0 Indiana Pacers Lavoy Allen 5.0 PF 27.0 6-9 255.0 Temple 4050000.0 Los Angeles Clippers Cole Aldrich 45.0 C 27.0 6-11 250.0 Kansas 1100602.0 Los Angeles Lakers Brandon Bass 2.0 PF 31.0 6-8 250.0 LSU 3000000.0 Memphis Grizzlies Jordan Adams 3.0 SG 21.0 6-5 209.0 UCLA 1404600.0 Miami Heat Chris Bosh 1.0 PF 32.0 6-11 235.0 Georgia Tech 22192730.0 Milwaukee Bucks Giannis Antetokounmpo 34.0 SF 21.0 6-11 222.0 Arizona 1953960.0>
그룹 중 하나에 포함된 값을 인쇄해 보겠습니다. 이를 위해서는 팀 이름을 사용하십시오. 우리는 기능을 사용합니다 get_group() 그룹에 포함된 항목을 찾으려면
파이썬3
# Finding the values contained in the 'Boston Celtics' group> gk.get_group(>'Boston Celtics'>)> |
내 컴퓨터 화면 크기는 얼마야
>
>
출력 :
Name Team Number Position Age Height Weight College Salary 0 Avery Bradley Boston Celtics 0.0 PG 25.0 6-2 180.0 Texas 7730337.0 1 Jae Crowder Boston Celtics 99.0 SF 25.0 6-6 235.0 Marquette 6796117.0 2 John Holland Boston Celtics 30.0 SG 27.0 6-5 205.0 Boston University NaN 3 R.J. Hunter Boston Celtics 28.0 SG 22.0 6-5 185.0 Georgia State 1148640.0 4 Jonas Jerebko Boston Celtics 8.0 PF 29.0 6-10 231.0 NaN 5000000.0 5 Amir Johnson Boston Celtics 90.0 PF 29.0 6-9 240.0 NaN 12000000.0 6 Jordan Mickey Boston Celtics 55.0 PF 21.0 6-8 235.0 LSU 1170960.0 7 Kelly Olynyk Boston Celtics 41.0 C 25.0 7-0 238.0 Gonzaga 2165160.0 8 Terry Rozier Boston Celtics 12.0 PG 22.0 6-2 190.0 Louisville 1824360.0 9 Marcus Smart Boston Celtics 36.0 PG 22.0 6-4 220.0 Oklahoma State 3431040.0 10 Jared Sullinger Boston Celtics 7.0 C 24.0 6-9 260.0 Ohio State 2569260.0 11 Isaiah Thomas Boston Celtics 4.0 PG 27.0 5-9 185.0 Washington 6912869.0 12 Evan Turner Boston Celtics 11.0 SG 27.0 6-7 220.0 Ohio State 3425510.0 13 James Young Boston Celtics 13.0 SG 20.0 6-6 215.0 Kentucky 1749840.0 14 Tyler Zeller Boston Celtics 44.0 C 26.0 7-0 253.0 North Carolina 2616975.0>
예시 2: 사용 그룹바이() 둘 이상의 범주를 기반으로 그룹을 형성하는 기능입니다(예: 분할을 수행하려면 둘 이상의 열을 사용합니다).
파이썬3
# importing pandas as pd> import> pandas as pd> # Creating the dataframe> df>=> pd.read_csv(>'nba.csv'>)> # First grouping based on 'Team'> # Within each team we are grouping based on 'Position'> gkk>=> df.groupby([>'Team'>,>'Position'>])> # Print the first value in each group> gkk.first()> |
>
>
출력 :
Name Number Age Height Weight College Salary Team Position Atlanta Hawks C Al Horford 15.0 30.0 6-10 245.0 Florida 12000000.0 PF Kris Humphries 43.0 31.0 6-9 235.0 Minnesota 1000000.0 PG Dennis Schroder 17.0 22.0 6-1 172.0 Wake Forest 1763400.0 SF Kent Bazemore 24.0 26.0 6-5 201.0 Old Dominion 2000000.0 SG Tim Hardaway Jr. 10.0 24.0 6-6 205.0 Michigan 1304520.0 ... ... ... ... ... ... ... ... Washington Wizards C Marcin Gortat 13.0 32.0 6-11 240.0 North Carolina State 11217391.0 PF Drew Gooden 90.0 34.0 6-10 250.0 Kansas 3300000.0 PG Ramon Sessions 7.0 30.0 6-3 190.0 Nevada 2170465.0 SF Jared Dudley 1.0 30.0 6-7 225.0 Boston College 4375000.0 SG Alan Anderson 6.0 33.0 6-6 220.0 Michigan State 4000000.0>