inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

공공데이터로 파이썬 데이터 분석 시작하기

[11/15] 대치동과 목동에는 입시학원이 많을까?

groupby컬럼지정

684

freedom07

작성한 질문수 104

1

선생님 

academy_group = df_academy.groupby(["시군구명","상권업종소분류명"])["상호명"].count() 

코드에서 '상호명'을 컬럼으로 지정해준 것이 아닌가요 ?

academy_group.shape

에서 series형태인건 알겠는데 ..

(1118,) 이렇게 행만 나오네요..

의문인것은..

t = academy_group.reset_index() 

이걸 해주면.. 

multiindex 였던 "시군구명"과 "상권업종소분류명"이 

컬럼으로 들어가는거로 아는데..

'상호수(상호명)'도 함께 들어가 있잖아요.

위에서 shape로 볼 때 (1118,)로 컬럼(열)이 나오질 않는데...

reset_index()한 후 보여지는 표에서는 '상호명'이 컬럼으로 나오고..

헷갈리네요.. 제 질문에 대해서 자세히 설명 부탁드릴게요..ㅠ  

pandas numpy python

답변 7

0

freedom07

네네 이제 제 질문을 이해해주신 것 같아요..ㅠㅠ 이제 이해했습니다..ㅠ  

답변 감사합니다 :)

0

박조은

reset_index 의 공식문서 입니다.

예제가 여러 개 있으니 아래 문서를 참고해 보세요.

[pandas.DataFrame.reset_index — pandas 1.2.1 documentation](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.DataFrame.reset_index.html)

0

박조은

series..to_frame() 을 하게 되면  새로운 인덱스, 기존인덱스가 컬럼으로, value 값에 있던 값도 컬럼으로 됩니다.

value 값에 있던 값이 왜 컬럼이 되냐는 질문을 해주신게 맞을까요?

reset_index()를 하게 되면 새로운 인덱스를 만들고 멀티인덱스 값도 컬럼으로 value 값도 컬럼이 되게 됩니다.

0

freedom07

선생님 제 질문을 계속 못이해하신 것 같아요..

계속 제 질문에서 말씀드리지만..ㅠ 멀티인덱스가 컬럼이 되는 부분을 이해하지 못한게 아닙니다..

"academy_group의 shape는  (1118,)로 컬럼이 나오질 않는데.. reset_index()한 후 보여지는 표에서는 multiindex 였던 "시군구명","상권업종소분류명" 뿐만아니라 '상호수(상호명)'도 컬럼이 나오는 부분에서 의문이었던 것이에요.."

이 질문에서 

"academy_group의 shape는  (1118,)로 컬럼이 나오질 않는데.. " 왜 "'상호수(상호명)'도 컬럼으로 나오는 부분에서 의문이었던 것이에요.."  이 부분이 초점입니다..ㅠ  제 질문을 정확히 봐주셨으면 좋겠어요...ㅠㅠ

0

박조은

reset_index 는 기존 인덱스를 컬럼으로 만들고 새로운 인덱스를 만들게 됩니다.

그래서 reset_index 후에 보면 0번 부터 시작하는 인덱스가 생겼습니다.

 

0

freedom07

답변 모두 감사합니다.

 선생님의 1번답변은 이해했습니다. 그런데 2번답변은 제 질문을 잘못이해하신 것 같아요..ㅠㅠ

제 질문은 rename을 해서 컬럼명이 변한 것이 의문이 아니라, 

academy_group의 shape는  (1118,)로 컬럼이 나오질 않는데..
reset_index()한 후 보여지는 표에서는 multiindex 였던 "시군구명","상권업종소분류명" 뿐만아니라 '상호수(상호명)'도 컬럼이 나오는 부분에서 의문이었던 것이에요..

academy_group의 shape는  (1118,)에서 컬럼이 없었는데 reset_index()을 하면 multiindex 였던 "시군구명","상권업종소분류명" 2개만 컬럼이 되는 것이 아니라.. '상호수(상호명)'도 함께 3개의 컬럼이 되는 부분이 헷갈려서요..ㅠ

설명 부탁드릴게요..ㅠ  

0

박조은

안녕하세요.

1. 질문주신 아래 결과는 Series 형태에요.

그래서 컬럼이 따로 없기 때문에 shape를 찍었을 때 행의 값만 나오게 됩니다.

데이터 프레임에서 특정 컬럼을 가져왔을 때 df["컬럼명"] 하게 되면 Series 형태가 되게 되는데

이 때도 df["컬럼명"].shape 를 찍어보게 되면 행의 갯수만 나오게 됩니다.

데이터의 형태가 Series 일때는 shape값을 출력했을 때 행의 갯수만 나옵니다.

2.  데이터프레임일때는 행과 열이 있기 때문에 행과 열의 수가 나오게 됩니다.

여기에서 reset_index를 해준 이유는 인덱스 값을 컬럼으로 사용하기 위해서에요.

Series.to_frame()을 통해 데이터프레임으로 만들어 줄 수 있지만 이때는 인덱스 값이 컬럼으로 오지 않아요.

그래서 인덱스 값을 컬럼으로 만들어 주기 위해 reset_index  를 사용했습니다.

그런데 이렇게 데이터프레임으로 변환을 해주면 컬럼명이 원하는 형태로 들어가지 않게 되요.

이럴때는 컬럼명을 임의로 변경해서 사용하면 됩니다.

예전에 질문 주셨던 rename 이나 columns 에 해당되는 컬럼명을 리스트 형태로 지정하는 방법으로요.

패키지 설치 에러 ydata-profiling

0

119

2

자세한 설명 부탁드려요 ㅜ

0

176

2

seaborn 라이브러리 호출하였으나 그래프가 안 그려져요

0

285

2

value_counts와 count 차이

0

341

2

안녕하세요 데이터 최신과 관련해서 문의드립니다.

0

204

3

scatterplot질문

0

122

1

강의 화면이 안나옵니다

0

164

2

4분12초 2013년부터 데이터가 없으면 어떻게하나요?..

0

188

2

에러 메시지

1

303

2

그래프 색이 동일하게 나옵니다.

0

308

2

시각화 라이브러리 비교

0

382

2

주피터 노트북 설치

0

390

1

2. 상가 기술통계 아웃풋 자료에서 오류가 납니다

0

226

1

14. distplot g = sns.FacetGrid(df_last, row="지역명", height=1.7, aspect=4) g.map(sns.distplot, "평당분양가격", hist=False, rug=True); 오류

0

178

1

group by agg function failed 에러

0

687

2

빈도수가 1000개 이상인 데이터를 따로 담을 때 코드 질문 있습니다.

0

288

2

주피터 노트북 실행 했는데 앞에 *가 생기고 결과가 나오지 않아요

0

363

3

get_string함수에서 문자 'nan'

0

200

1

seaborn X축 시작 지점 조정 질의의 건

0

212

1

14강 distplot 질의

0

289

1

nbextension 설치 및 셋팅 후 적용이 안되는 이슈

0

477

1

corr = df.corr() 입력시 오류

1

372

1

keyword grid_b is not recognized

0

334

1

%ls data 매직커맨드 사용시 한글 깨짐

0

292

1