팬더 GroupBy

| | | | | | | | | | | | | | | | | | | | | |

그룹비 — 꽤 간단한 개념. 범주 그룹을 만들고 범주에 기능을 적용할 수 있습니다. 간단한 개념이지만 데이터 과학. 실제 데이터 과학 프로젝트에서는 많은 양의 반복적으로 작업을 수행하므로 효율성을 위해 Groupby 개념을 사용합니다. Groupby 개념은 성능과 코드 양 모두에서 데이터를 효율적으로 결합할 수 있기 때문에 정말 중요합니다. 그룹화는 주로 다음 단계 중 하나 이상을 포함하는 프로세스를 나타냅니다.

  • 분리: 데이터세트에 몇 가지 조건을 적용하여 데이터를 그룹으로 나누는 프로세스입니다. .
  • 적용: 각 그룹에 독립적으로 기능을 적용하는 프로세스입니다.
  • 통합: 그룹화 및 결과를 데이터 구조에 적용한 후 서로 다른 데이터세트를 결합합니다.

다음 이미지는 Groupby 개념과 관련된 프로세스를 이해하는 데 도움이 됩니다.
1. "팀" 열에서 고유한 값을 그룹화합니다.

2. 이제 각 그룹에 대한 버킷이 있습니다.

3. 다른 데이터를 버킷에 넣습니다.

4. 각 버킷의 가중치 열에 함수를 적용합니다.

데이터를 그룹으로 나누기

분할 — 데이터 세트에 몇 가지 조건을 적용하여 데이터를 그룹으로 나누는 프로세스입니다. 데이터를 분리하기 위해 데이터 세트에 특정 조건을 적용합니다. 데이터를 분리하기 위해 groupby () 를 사용합니다. 이 기능은 일부 기준에 따라 데이터를 그룹으로 나누는 데 사용됩니다. . Pandas 객체는 임의의 축으로 세분될 수 있습니다. 그룹화의 추상적인 정의는 레이블을 그룹 이름에 매핑하는 것입니다. Pandas 데이터 세트는 모든 개체로 분할할 수 있습니다. 데이터를 분할하는 방법에는 여러 가지가 있습니다. 예:

참고: 여기 그룹화 개체를 키로 참조합니다.
하나의 키로 데이터 그룹화:
하나의 키로 데이터를 그룹화하려면 하나의 키만 groupby 기능.

< br>이제 groupby () 함수를 사용하여 Name 데이터를 그룹화합니다.


# groupby 기능 사용

code>
# 하나의 키

df.그룹비 ( `이름` )

인쇄 (df.그룹별< /a> ( `이름` ). 그룹)

출력:

이제 모든 형성된 그룹의 첫 번째 레코드를 인쇄합니다.


# 적용 groupby () 함수를
# 이름 값으로 그룹화 데이터

<코드 클래스 = "일반"> gk <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> df.그룹비 ( `이름` )


# 첫 번째 항목 인쇄
# 생성된 모든 그룹에서.
<코드 클래스 = "일반"> gk.first ()

# pandas 모듈 가져오기

가져오기 pd로 pandas


# 직원 데이터를 포함하는 사전 정의

<코드 클래스 = "일반"> 데이터1 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> { <코드 클래스 = " 문자열 ">` 이름` <코드 클래스 = "일반">: [ <코드 클래스 = "문자열"> `재이` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열 g"> `아누즈` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 자이` <코드 클래스="일반">, <코드 클래스 ="문자열 ">` 원리` <코드 클래스 = "일반">,

<코드 클래스 = "정의되지 않은 공간 "> ` Gaurav` , `Anuj` , <코드 클래스 = "문자열"> `프린시` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 "> `아비` < 코드 클래스 ="일반 ">],

` 연령` : [ <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 24 <코드 클래스 = "일반">, <코드 클래스 = "값"> 22 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 < /코드> <코드 클래스 = "일반">,

<코드 클래스 = "값 "> 33 <코드 클래스 ="일반 ">, < 코드 클래스 = "값 "> 36 <코드 클래스 ="일반 ">, <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 <코드 클래스 = "일반">],

<코드 클래스 = "문자열"> `주소` <코드 클래스 ="plai n ">: [ <코드 클래스 ="문자열 ">` 나그푸르` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `칸푸르 ` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알라하바드` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열 "> `칸누아지` ‚Äã‚Äã ,

` 자운푸르` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `칸푸르` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열"> `알라하바드` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 알리가르` <코드 클래스 = "일반">],

<코드 클래스 = "문자열"> `자격` <코드 클래스 ="일반 ">: [< /코드> <코드 클래스 = "문자열"> `Msc` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` MA` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `MCA` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 박사` <코드 클래스 = "일반">,

<코드 클래스 = "문자열"> `B.Tech` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` B.com` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `Msc` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` MA` <코드 클래스 = "일반">]}


< br> # 사전을 DataFrame으로 변환

df = pd.DataFrame (data1)

인쇄 <코드 클래스 = "일반"> (df)

출력:

여러 키로 데이터 그룹화:
여러 키로 데이터를 그룹화하기 위해 groupby 함수.


# pandas 모듈 가져오기

가져오기 pd로 pandas


# 직원 데이터를 포함하는 사전 정의

<코드 클래스 = "일반" > 데이터1 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> { <코드 클래스 = "문자열"> `이름` <코드 클래스 = "일반">: [ <코드 클래스 = "문자열"> `재이` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `제이` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 프린시` <코드 클래스 = " 일반">,

<코드 클래스 = "문자열" > `가우라브` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 " >` 아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `프린시` <코드 클래스 ="일반 ">, < 코드 클래스 ="문자열 ">` 아비` <코드 클래스 = "일반"> ],

<코드 클래스 = "문자열"> `나이` <코드 클래스 ="일반 ">: [ <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 24 < /코드> <코드 클래스 = "일반 ">, <코드 클래스 ="값 "> 22 <코드 클래스 ="일반 ">, <코드 클래스 ="값 "> 32 <코드 클래스 = "일반">,

<코드 클래스 = "값"> 33 <코드 클래스 = "일반">, <코드 클래스 = "값"> 36 <코드 클래스 = "일반">, <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클라 ss = "값"> 32 <코드 클래스 = "일반">],

<코드 클래스 = "문자열"> `주소` <코드 클래스 ="일반 ">: [ <코드 클래스 ="문자열 ">` 나그푸르` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `칸푸르` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 알라하바드` <코드 클래스 = "일반">, <코드 클래스 = " string"> `Kannuaj` ‚Äã‚Äã ,

`자운푸르` < 코드 클래스 ="일반 ">, <코드 클래스 = "문자열"> `칸푸르` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 알라하바드 ` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알리가르` <코드 클래스 ="일반 ">],

`자격` : [ `Msc` , <코드 클래스 ="문자열 ">` MA` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> ` MCA` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 박사` <코드 클래스 = "일반">,

`B.Tech` , `B.com` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` Msc` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `MA` ]}



# DataFrame에서 사전 변환

<코드 클래스 = "일반"> df <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> pd. DataFrame (data1)


인쇄 (df)


이제 다음을 사용하여 이름 및 자격 데이터를 그룹화합니다.
groupby 기능의 여러 키가 작동합니다.


# # groupby () 함수

df.groupby([ ` 이름` < 코드 클래스 = "일반">, <코드 클래스 = "문자열"> `자격` <코드 클래스 ="일반 ">])


<코드 클래스 = "함수"> 인쇄 <코드 클래스 ss = "plain"> (df.groupby([ `이름` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 자격` <코드 클래스 = "일반 ">]). 그룹)

출력:

키 정렬로 데이터 그룹화:
그룹 키는 대량 작업 중에 기본적으로 정렬됩니다. 사용자는 속도 향상을 위해 sort = False 를 전달할 수 있습니다.


# pandas 모듈 가져오기

가져오기 pd로 pandas


# 직원 데이터를 포함하는 사전 정의

data1 = { `이름` : [ `Jai` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">`아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `자이` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 프린시` <코드 클래스 = "일반">,

<코드 클래스 = "문자열"> `가우라브` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 " > `아누즈` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">`프린시` <코드 클래스 = "일반">, `Abhi` ],

<코드 클래스 = "문자열"> `나이` <코드 클래스 ="일반 ">: [ <코드 클래스 ="값 "> 27 <코드 클래스 ="일반 ">, <코드 클래스 = "값"> 24 <코드 클래스 = "일반">, <코드 클래스 = "값"> 22 <코드 클래스 = "일반"> , <코드 클래스 = "값"> 32 <코드 클래스 = "일반">,

<코드 클래스 = "정의되지 않은 공백" > <코드 클래스 = "값"> 33 <코드 클래스 = "일반">, <코드 클래스 = "값"> 36 <코드 클래스 = "일반 ">, <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 <코드 클래스 = "plain"> ],}



# 사전을 DataFrame으로 변환

< 코드 클래스 = "일반"> df <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> pd.DataFrame(data1)


<코드 클래스 = "함수"> 인쇄 <코드 클래스 = "일반"> (df)


이제 groupby () 정렬 없음



# groupby 기능 사용
# 정렬을 사용하지 않음


df.groupby([ <코드 클래스 = "문자열"> `이름` <코드 클래스 ="일반 ">]). 합계 ()

출력:

이제 groupby () 정렬을 사용하여 잠재적인 속도 향상을 달성합니다.


# 사용 groupby 함수
# 정렬됨


df .그룹비([ `이름` ], 정렬 = False ). <코드 클래스 = "함수"> 합계 <코드 클래스 = "일반"> ( )

출력:

개체 속성으로 데이터 그룹화:
groups 속성은 사전과 유사하며, 키는 계산된 고유 그룹이고 해당 값은 축 레이블이며 각 그룹에 속합니다.


# pandas 모듈 가져오기

가져오기 pandas as pd


# 직원 데이터를 포함하는 사전 정의

data1 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> { <코드 클래스 = "문자열"> `이름` <코드 클래스 =" 일반 ">: [ ` Jai` , `아누즈` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 자이 ` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 프린시` <코드 클래스 = "일반">,

<코드 클래스 = "문자열"> `가우라브` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `프린시` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 아비` <코드 클래스 = "일반">],

<코드 클래스 = "문자열" > `나이` <코드 클래스 ="일반 ">: [ <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 24 <코드 클래스 = "일반">, <코드 클래스 = "값"> 22 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 <코드 클래스 = "일반" >,

<코드 클래스 = "값"> 33 <코드 클래스 = "일반">, <코드 클래스 = "값"> 36 <코드 클래스 = "일반">, <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 <코드 클래스 = "일반">],

<코드 클래스 = "정의되지 않은 공백"> < 코드 클래스 = "문자열"> `주소` <코드 클래스 ="일반 ">: [ <코드 클래스 ="문자열 ">` 나그푸르` <코드 클래스="일반" >, <코드 클래스 ="문자열 ">` 칸푸르` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알라하바드` < 코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 칸누아즈` ‚Äã‚Äã <코드 클래스 = "일반">,

<코드 클래스 = "문자열"> `자운푸르` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열"> `칸푸르` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 알라하바드` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알리가르` ],

` 자격` < 코드 클래스 = "일반">: [ <코드 클래스 = "문자열"> `Msc` <코드 클래스 = "일반">, < 코드 클래스 = "문자열"> `MA` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 " > `MCA` <코드 클래스 ="일반 "> , <코드 클래스 = "문자열 ">` 박사` <코드 클래스 = "일반">,

<코드 클래스 = "문자열"> `B .기술` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열"> `B.com` <코드 클래스 ="일반 ">, <코드 클래스 ="st 링 ">` Msc` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `MA` <코드 클래스 ="일반 ">]}



# 사전을 DataFrame으로 변환

df <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> pd.DataFrame(데이터1)


< 코드 클래스 = "함수"> 인쇄 <코드 클래스 = "일반"> (df)


이제 키를 사용하여 사전에서 하는 것처럼 데이터를 그룹화합니다.

<코드 클래스 = "주석" > # 그룹화 키 사용
# 데이터


df.그룹비( ` 이름` ). 그룹

출력:

그룹 반복


# pandas module import

가져오기 pd로 pandas


# 직원에 대한 데이터를 포함하는 사전 정의

data1 = { <코드 클래스 = "문자열"> `이름` <코드 클래스 ="일반 ">: [ <코드 클래스 ="문자열 ">` 자이` <코드 클래스 = "p lain ">, <코드 클래스 ="문자열 ">` 아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `자이` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `프린시` <코드 클래스 ="일반 ">,

< 코드 클래스 = "문자열"> `가우라브` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 아누즈 ` <코드 클래스 ="일반 "> , <코드 클래스 ="문자열 ">` 원리` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `아비` <코드 클래스 ="일반 ">],

` 연령` <코드 클래스 = "일반">: [ <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 24 <코드 클래스 = "일반">, <코드 클래스 = "값"> 22 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 <코드 클래스 = "일반">,

<코드 클래스 = "값"> 33 <코드 클래스 = "일반">, <코드 클래스 = "값 e"> 36 <코드 클래스 = "일반" >, <코드 클래스 = "값"> 27 <코드 클래스 = "일반">, <코드 클래스 = "값"> 32 ],

` 주소` : [ ` Nagpur` , <코드 클래스 = "문자열"> `칸푸르` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알라하바드` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 "> `칸누아지` ‚Äã‚Äã <코드 클래스 ="일반 ">,

<코드 클래스 = "정의되지 않은 공백 "> ` Jaunpur ` , ` Kanpur` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `알라하바드` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열" >` 알리가르` ],

`자격` <코드 클래스 ="일반 ">: [ <코드 클래스 = "문자열"> `Msc` <코드 클래스 ="일반 ">, <코드 클래스 = "문자열 "> `MA` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` MCA` <코드 클래스 = "일반">, `박사` ,

`B.Tech` , ` B.com` <코드 클래스 = " 일반">, <코드 클래스 = "문자열"> `Msc` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` MA ` <코드 클래스 ="일반 ">]}


<코드 클래스 = " comment"> # 사전을 DataFrame으로 변환

df = pd.DataFrame (data1)

인쇄 < /코드> (df)


이제 itertools.obj에서 하는 것처럼 그룹 요소를 반복합니다.


# 요소 반복
그룹 #


그룹 <코드 클래스 = "키워드"> = <코드 클래스 = "일반"> df.그룹별 ( `이름` )

이름, 그룹 의 경우 그룹:

인쇄 (이름)

인쇄 (그룹)

인쇄 <코드 클래스 = "일반"> ()

출력:

이제 그룹 요소를 반복합니다. 여러 키 포함


# 요소 반복

# 다중 키


grp = df.그룹비([ `이름` , ` 자격` <코드 클래스 = "plain">])

for 이름, 그룹 grp:

<코드 클래스 ="기능 "> 인쇄 <코드 클래스 = "일반"> (이름)

<코드 클래스 = "키워드" > 인쇄 <코드 클래스 = "일반"> (그룹)

<코드 클래스 = "함수"> 인쇄 <코드 클래스 = "일반"> ( )

출력:
출력에 표시된 것처럼 그룹 이름은 튜플

그룹 선택

선택하려면 그룹에서 GroupBy.get_group() 을 사용하여 그룹을 선택할 수 있습니다. GroupBy.get_group 함수를 적용하여 그룹을 선택할 수 있습니다. 이 함수는 하나의 그룹을 선택합니다.


# pandas 모듈 가져오기

가져오기 pd로 pandas


# 직원 데이터를 포함하는 사전 정의

data1 = <코드 클래스 = "일반"> { <코드 클래스 = "문자열"> `이름` <코드 클래스 ="일반 ">: [ <코드 클래스 = " 문자열"> `자이` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 아누즈` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `제이` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 프린시` <코드 클래스 = "일반 ">,

<코드 클래스 = "문자열"> `가우라브` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `아누즈` <코드 클래스 ="일반 ">, <코드 클래스 ="문자열 ">` 원리` <코드 클래스 = "일반">, <코드 클래스 = "문자열"> `아비` <코드 클래스 ="일반 ">],

인쇄 (이름)

인쇄 <코드 클래스 = "일반"> (그룹)

<코드 클래스 = "functions"> 인쇄 <코드 클래스 = " plain"> ()

출력:
출력에 표시된 대로 그룹 이름은 튜플

그룹 선택 그룹을 선택하려면 GroupBy.get_group() 을 사용하여 그룹을 선택할 수 있습니다. GroupBy.get_group 기능을 적용하여 그룹을 선택할 수 있습니다. 이 기능은 하나의 그룹을 선택합니다 .


# pandas 모듈 가져오기

가져오기 <코드 클래스 = "일반 "> pd로 판다