• 카테고리

    질문 & 답변
  • 세부 분야

    데이터 분석

  • 해결 여부

    미해결

안녕하세요 강사님 chapter[9/20] boxplot 관련해서 질문 드립니다.

22.02.23 03:21 작성 조회수 155

1

import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import re
import seaborn as sns
plt.rc('font',family='Malgun Gothic')

df1=pd.read_csv("전국 평균 분양가격(2013년 9월부터 2015년 8월까지).csv",header=0,index_col=0,
                encoding='cp949')
df2=pd.read_csv("주택도시보증공사_전국 평균 분양가격(2019년 12월).csv",header=0,index_col=0,
                encoding='cp949')


df2["분양가격(㎡)"]=pd.to_numeric(df2["분양가격(㎡)"],errors="coerce")
df2["분양가/평"]=(df2["분양가격(㎡)"]*3.3)

df2["전용면적"]=df2["규모구분"].str.replace("전용면적","")
df2["전용면적"]=df2["전용면적"].str.replace("초과","~")
df2["전용면적"]=df2["전용면적"].str.replace("이하","")
df2["전용면적"]=df2["전용면적"].str.strip()
df2["지역명"]=df2.index

df2.drop("규모구분",axis=1,inplace=True)

df2=df2.reset_index(drop=True)

fig,ax=plt.subplots(1,1,figsize=(15,15))

pdf=pd.pivot_table(df2,values="분양가/평",index="월",columns="연도")
pdf2=pd.pivot_table(df2,values="분양가/평",columns="연도").T

pdf.plot.box(ax=ax)

 

 

여기까지는 잘 작동이 되는데요...

 

이 박스플롯에, 전체 평균을 오버랩 시켜서 그려보려고 했어요.

 

fig,ax=plt.subplots(1,1,figsize=(15,15))

pdf=pd.pivot_table(df2,values="분양가/평",index="월",columns="연도")
pdf2=pd.pivot_table(df2,values="분양가/평",columns="연도").T


pdf.plot.box(ax=ax)
pdf2.plot(ax=ax)

 

월로 세분화 되지 않은 , 연도별 총합 평균으로 구성한  dataframe을 ax에 그렸는데 안되더라구요.

twinx 메소드로도 되지 않아요.

이런식으로 모든 연도가 가장 왼쪽에 박혀버립니다..

문제가 무엇일까요

답변 1

답변을 작성해보세요.

0

안녕하세요.

T로 전치해주었다면 index 값이 "연도"가 아니겠네요.

인덱스 값이 같아야지 "연도"별로 값을 표시해 줄 수있습니다.

또, 선 그래프로 그렸을 때 잘 안 보인다면 일단 kind="bar" 혹은 .bar()를 통해 막대그래프로 그려보세요!