• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

4/9 groupby 와 pivot_table 에서 질문입니다.

21.05.01 12:03 작성 조회수 170

1

df_cafe_vs=df_cafe.groupby(["시군구명","브랜드명"])["상호명"].count() 

1번 질문.

df_cafe_vs.columns 를 하면  아래의 에러 메세지가 뜨는데,  'Series' object has no attribute 'columns'

df_cafe_vs.columns=["구", "브랜드명", "매장수"]

df_cafe_vs.columns

에서는 아래와 같이 잘 되는지 잘 모르겠습니다.

 ['구', '브랜드명', '매장수']



2. df_cafe_vs.to_frame() 한 데이터에서는 column값이 상호명 하나라고 나오고

위에서 처럼 ["구", "브랜드명", "매장수"] 바꿔주는 거 하니 오류가 납니다. 

답변 1

답변을 작성해보세요.

0

안녕하세요.

1번 내용에 대해서는 아래의 코드를 실행했을 때 결과는 멀티인덱스를 가지는 시리즈 형태로 반환이 됩니다.

df_cafe_vs=df_cafe.groupby(["시군구명","브랜드명"])["상호명"].count() 

컬럼명을 지정해 주면 컬럼이 지정이 되긴 하지만 해당 변수를 다시 출력했을 때는 컬럼이 보이지 않을거에요.

위 결과는 멀티인덱스를 가지는 Series 형태라서 그래요. 

해당 인덱스 값을 컬럼으로 변경하면 데이터 프레임으로 변경이 되는데

df_cafe.groupby(["시군구명","브랜드명"])["상호명"].count().reset_index() 

로 인덱스를 초기화 해주고 컬럼명을 변경해 주는 방법을 추천합니다.

reset_index()를 통해 인덱스를 초기화 하면 기존 인덱스가 컬럼이 되고 인덱스 번호가 새로 생성됩니다.

2번은 to_frame()을 했을 때 데이터 프레임으로 반환이 되나 인덱스는 기존 멀티인덱스 값이 그대로 들어가게 됩니다. 인덱스 값을 컬럼으로 사용하고 싶다면 reset_index()를 사용하는 것을 추천하지만 시리즈형태의 데이터를 데이터프레임 형태로 변환하고자 한다면 to_frame()을 사용하시는 것을 추천합니다.

기존 인덱스 값을 컬럼으로 만들 것이냐 아니면 인덱스값으로 사용할 것이냐의 차이로 두 방법를 선택해서 활용해 보시면 될것 같아요.

감사합니다 :)