-
카테고리
-
세부 분야
데이터 분석
-
해결 여부
미해결
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값이 상호명 하나라고 나오고
위에서 처럼 ["구", "브랜드명", "매장수"] 바꿔주는 거 하니 오류가 납니다.
답변을 작성해보세요.
0
박조은
지식공유자2021.05.01
안녕하세요.
1번 내용에 대해서는 아래의 코드를 실행했을 때 결과는 멀티인덱스를 가지는 시리즈 형태로 반환이 됩니다.
df_cafe_vs=df_cafe.groupby(["시군구명","브랜드명"])["상호명"].count()
컬럼명을 지정해 주면 컬럼이 지정이 되긴 하지만 해당 변수를 다시 출력했을 때는 컬럼이 보이지 않을거에요.
위 결과는 멀티인덱스를 가지는 Series 형태라서 그래요.
해당 인덱스 값을 컬럼으로 변경하면 데이터 프레임으로 변경이 되는데
df_cafe.groupby(["시군구명","브랜드명"])["상호명"].count().reset_index()
로 인덱스를 초기화 해주고 컬럼명을 변경해 주는 방법을 추천합니다.
reset_index()를 통해 인덱스를 초기화 하면 기존 인덱스가 컬럼이 되고 인덱스 번호가 새로 생성됩니다.
2번은 to_frame()을 했을 때 데이터 프레임으로 반환이 되나 인덱스는 기존 멀티인덱스 값이 그대로 들어가게 됩니다. 인덱스 값을 컬럼으로 사용하고 싶다면 reset_index()를 사용하는 것을 추천하지만 시리즈형태의 데이터를 데이터프레임 형태로 변환하고자 한다면 to_frame()을 사용하시는 것을 추천합니다.
기존 인덱스 값을 컬럼으로 만들 것이냐 아니면 인덱스값으로 사용할 것이냐의 차이로 두 방법를 선택해서 활용해 보시면 될것 같아요.
감사합니다 :)
답변 1