본문 바로가기
data mining

[pandas] group by 하여 counter 컬럼 추가

by 단창 2021. 6. 10.

 

df = pd.DataFrame(columns=['name','age','city'])
df =df.append({'name':'kim','age':1, 'city':2}, ignore_index= True)
df =df.append({'name':'kim','age':1, 'city':2}, ignore_index= True)
df =df.append({'name':'park','age':1, 'city':5}, ignore_index= True)
df =df.append({'name':'kim','age':2, 'city':5}, ignore_index= True)
df =df.append({'name':'park','age':2, 'city':2}, ignore_index= True)
df =df.append({'name':'kim','age':2, 'city':2}, ignore_index= True)
df =df.append({'name':'kim','age':2, 'city':2}, ignore_index= True)

이런 테이블이 있을떄, 중복 row의 count을 세려 새로운 컬럼으로 추가하고 싶다면 

sql같으면 

select name, age, city, count(1) as counter
from A
group by name, age, city

이렇게 쓴다 

pandas에선 

df['counter'] = 1
df = df.groupby(['name','age','city'])['counter'].sum().reset_index()

이렇게 한다. 
counter 컬림을 1을 기본값으로 추가하고,
name, age, city 그룹을 만든다음 counter 컬럼에 대해서 sum 을 한다
index가 뭉쳐서 나오는데, reset해준다

반응형

'data mining' 카테고리의 다른 글

open dataset - heterogeneous graph  (0) 2021.11.08
maximum, maximal independent set in graphs  (0) 2019.07.04
anti-monotone in graph, pattern  (0) 2019.07.04