본문 바로가기
동굴 속 정보

python groupby로 그룹끼리 한줄 정리하기

by 도시형닌자 2020. 4. 20.

[ 데이터 그룹 하기 ]

파이썬에서 엑셀처럼 데이터를 사용할 때 

나는 데이터프래임(DataFrame) 타입으로 데이터를 만들어서 주물럭 거린다.

 

그러다 보면 데이터를 그룹끼리 묶어야 하는 순간이 온다.

SQL을 사용할때 사용해본 Group by와 같은 기능이 필요하다.

 

먼저 예제로 데이터를 생성해 보겠다.

df = pd.DataFrame(np.array([['사자', "1반", '어흥','010-1234-1234'], 
                            ['사자', "2반", '야옹','010-1234-4321'], 
                            ['늑대', "1반", '컹컹','010-4331-1234'], 
                            ['하마', "2반", '므허','010-1234-3567']]),
                  columns=['종류', '반', '별명', "연락처"])

 

왼쪽에 있는 데이터프레임으로 생성이 된다.

이 데이터프래임을 오른쪽 데이터프래임처럼 그룹 하고 싶다.

이러한 방법은 NLP(Natural Language Processing : 자연어 처리)를 할 때 꼭 필요하기도 하다.

데이터프래임 생성

 

이때 사용하면 되는 함수가 groupby이고

마지막에 옵션으로 넣을 함수가 agg이다.

 

 

데이터프레임.groupby("그룹할 컬럼명", as_index=False)

"as_index=False" 옵션으로 인덱스를 무시하고 합친다.

".agg(','.join)"는 사용자 정의 함수를 사용하게 해 준다.

그래서 그룹화된 내역이 join기능을 통해 쉼표(,) 구분자로 연결된다.

df_group = df.groupby('종류', as_index=False).agg(','.join)
df_group.head()

데이터프래임 쉼표로 그룹하기