인공지능 공부/공공데이터 분석

(공공데이터분석) 전국 신규 민간 아파트 분양가 분석해보기(1)

앨런튜링_ 2021. 6. 12. 14:43
mport pandas as pd 
df_last = pd.read_csv('주택도시보증공사_전국 평균 분양가격(2019년 12월).csv', encoding='cp949')
df_last.shape
(4335, 5)

df_last.head()
지역명	규모구분	연도	월	분양가격(㎡)
0	서울	전체	2015	10	5841
1	서울	전용면적 60㎡이하	2015	10	5652
2	서울	전용면적 60㎡초과 85㎡이하	2015	10	5882
3	서울	전용면적 85㎡초과 102㎡이하	2015	10	5721
4	서울	전용면적 102㎡초과	2015	10	5879

df_last.tail()
지역명	규모구분	연도	월	분양가격(㎡)
4330	제주	전체	2019	12	3882
4331	제주	전용면적 60㎡이하	2019	12	NaN
4332	제주	전용면적 60㎡초과 85㎡이하	2019	12	3898
4333	제주	전용면적 85㎡초과 102㎡이하	2019	12	NaN
4334	제주	전용면적 102㎡초과	2019	12	3601

# 해당되는 폴더의 경로 파일의 목록 출력
%ls
 C 드라이브의 볼륨: SYSTEM
 볼륨 일련 번호: 924C-45D1

 C:\Users\SM2130\공공데이터분석 디렉터리

2021-06-11  오후 02:01    <DIR>          .
2021-06-11  오후 02:01    <DIR>          ..
2021-06-11  오후 01:51    <DIR>          .ipynb_checkpoints
2021-06-11  오후 01:45    <DIR>          data
2021-06-11  오후 02:01             9,115 Untitled.ipynb
2021-06-11  오후 01:47             2,163 전국 평균 분양가격(2013년 9월부터 2015년 8월까지).csv
2021-06-11  오후 01:47           162,510 주택도시보증공사_전국 평균 분양가격(2019년 12월).csv
               3개 파일             173,788 바이트
               4개 디렉터리  410,286,723,072 바이트 남음
               
df_first = pd.read_csv("전국 평균 분양가격(2013년 9월부터 2015년 8월까지).csv", encoding="cp949")
df_first.shape
(17, 22)

df_first.head()
지역	2013년12월	2014년1월	2014년2월	2014년3월	2014년4월	2014년5월	2014년6월	2014년7월	2014년8월	...	2014년11월	2014년12월	2015년1월	2015년2월	2015년3월	2015년4월	2015년5월	2015년6월	2015년7월	2015년8월
0	서울	18189	17925	17925	18016	18098	19446	18867	18742	19274	...	20242	20269	20670	20670	19415	18842	18367	18374	18152	18443
1	부산	8111	8111	9078	8965	9402	9501	9453	9457	9411	...	9208	9208	9204	9235	9279	9327	9345	9515	9559	9581
2	대구	8080	8080	8077	8101	8267	8274	8360	8360	8370	...	8439	8253	8327	8416	8441	8446	8568	8542	8542	8795
3	인천	10204	10204	10408	10408	10000	9844	10058	9974	9973	...	10020	10020	10017	9876	9876	9938	10551	10443	10443	10449
4	광주	6098	7326	7611	7346	7346	7523	7659	7612	7622	...	7752	7748	7752	7756	7861	7914	7877	7881	8089	8231
5 rows × 22 columns

df_first.tail()
지역	2013년12월	2014년1월	2014년2월	2014년3월	2014년4월	2014년5월	2014년6월	2014년7월	2014년8월	...	2014년11월	2014년12월	2015년1월	2015년2월	2015년3월	2015년4월	2015년5월	2015년6월	2015년7월	2015년8월
12	전북	6282	6281	5946	5966	6277	6306	6351	6319	6436	...	6583	6583	6583	6583	6542	6551	6556	6601	6750	6580
13	전남	5678	5678	5678	5696	5736	5656	5609	5780	5685	...	5768	5784	5784	5833	5825	5940	6050	6243	6286	6289
14	경북	6168	6168	6234	6317	6412	6409	6554	6556	6563	...	6881	6989	6992	6953	6997	7006	6966	6887	7035	7037
15	경남	6473	6485	6502	6610	6599	6610	6615	6613	6606	...	7125	7332	7592	7588	7668	7683	7717	7715	7723	7665
16	제주	7674	7900	7900	7900	7900	7900	7914	7914	7914	...	7724	7739	7739	7739	7826	7285	7285	7343	7343	7343
5 rows × 22 columns

df_last.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4335 entries, 0 to 4334
Data columns (total 5 columns):
 #   Column   Non-Null Count  Dtype 
---  ------   --------------  ----- 
 0   지역명      4335 non-null   object
 1   규모구분     4335 non-null   object
 2   연도       4335 non-null   int64 
 3   월        4335 non-null   int64 
 4   분양가격(㎡)  4058 non-null   object
dtypes: int64(2), object(3)
memory usage: 169.5+ KB

df_last.isnull()
지역명	규모구분	연도	월	분양가격(㎡)
0	False	False	False	False	False
1	False	False	False	False	False
2	False	False	False	False	False
3	False	False	False	False	False
4	False	False	False	False	False
...	...	...	...	...	...
4330	False	False	False	False	False
4331	False	False	False	False	True
4332	False	False	False	False	False
4333	False	False	False	False	True
4334	False	False	False	False	False
4335 rows × 5 columns

df_last.isnull().sum()
지역명          0
규모구분         0
연도           0
월            0
분양가격(㎡)    277

dtype: int64
df_last.isna().sum()
지역명          0
규모구분         0
연도           0
월            0
분양가격(㎡)    277
dtype: int64

df_last['분양가격(㎡)'] ##수치데이터로 변경해야함
0       5841
1       5652
2       5882
3       5721
4       5879
        ... 
4330    3882
4331     NaN
4332    3898
4333     NaN
4334    3601
Name: 분양가격(㎡), Length: 4335, dtype: object
type(pd.np.nan)
<ipython-input-29-e71c757bba12>:1: FutureWarning: The pandas.np module is deprecated and will be removed from pandas in a future version. Import numpy directly instead
  type(pd.np.nan)
float

pd.to_numeric(df_last['분양가격(㎡)'], errors='coerce')  ##nan값때문에 float64로된다
0       5841.0
1       5652.0
2       5882.0
3       5721.0
4       5879.0
         ...  
4330    3882.0
4331       NaN
4332    3898.0
4333       NaN
4334    3601.0
Name: 분양가격(㎡), Length: 4335, dtype: float64

df_last["분양가격"] = pd.to_numeric(df_last['분양가격(㎡)'], errors='coerce')  ##nan값때문에 float64로된다
df_last['분양가격'].mean()
3238.128632802628

df_last.isna()
지역명	규모구분	연도	월	분양가격(㎡)	분양가격
0	False	False	False	False	False	False
1	False	False	False	False	False	False
2	False	False	False	False	False	False
3	False	False	False	False	False	False
4	False	False	False	False	False	False
...	...	...	...	...	...	...
4330	False	False	False	False	False	False
4331	False	False	False	False	True	True
4332	False	False	False	False	False	False
4333	False	False	False	False	True	True
4334	False	False	False	False	False	False
4335 rows × 6 columns

df_first
지역	2013년12월	2014년1월	2014년2월	2014년3월	2014년4월	2014년5월	2014년6월	2014년7월	2014년8월	...	2014년11월	2014년12월	2015년1월	2015년2월	2015년3월	2015년4월	2015년5월	2015년6월	2015년7월	2015년8월
0	서울	18189	17925	17925	18016	18098	19446	18867	18742	19274	...	20242	20269	20670	20670	19415	18842	18367	18374	18152	18443
1	부산	8111	8111	9078	8965	9402	9501	9453	9457	9411	...	9208	9208	9204	9235	9279	9327	9345	9515	9559	9581
2	대구	8080	8080	8077	8101	8267	8274	8360	8360	8370	...	8439	8253	8327	8416	8441	8446	8568	8542	8542	8795
3	인천	10204	10204	10408	10408	10000	9844	10058	9974	9973	...	10020	10020	10017	9876	9876	9938	10551	10443	10443	10449
4	광주	6098	7326	7611	7346	7346	7523	7659	7612	7622	...	7752	7748	7752	7756	7861	7914	7877	7881	8089	8231
5	대전	8321	8321	8321	8341	8341	8341	8333	8333	8333	...	8067	8067	8067	8067	8067	8145	8272	8079	8079	8079
6	울산	8090	8090	8090	8153	8153	8153	8153	8153	8493	...	8891	8891	8526	8526	8629	9380	9192	9190	9190	9215
7	경기	10855	10855	10791	10784	10876	10646	10266	10124	10134	...	10356	10379	10391	10355	10469	10684	10685	10573	10518	10573
8	세종	7601	7600	7532	7814	7908	7934	8067	8067	8141	...	8592	8560	8560	8560	8555	8546	8546	8671	8669	8695
9	강원	6230	6230	6230	6141	6373	6350	6350	6268	6268	...	6365	6365	6348	6350	6182	6924	6846	6986	7019	7008
10	충북	6589	6589	6611	6625	6678	6598	6587	6586	6586	...	6724	6743	6749	6747	6783	6790	6805	6682	6601	6603
11	충남	6365	6365	6379	6287	6552	6591	6644	6805	6914	...	6940	6989	6976	6980	7161	7017	6975	6939	6935	6942
12	전북	6282	6281	5946	5966	6277	6306	6351	6319	6436	...	6583	6583	6583	6583	6542	6551	6556	6601	6750	6580
13	전남	5678	5678	5678	5696	5736	5656	5609	5780	5685	...	5768	5784	5784	5833	5825	5940	6050	6243	6286	6289
14	경북	6168	6168	6234	6317	6412	6409	6554	6556	6563	...	6881	6989	6992	6953	6997	7006	6966	6887	7035	7037
15	경남	6473	6485	6502	6610	6599	6610	6615	6613	6606	...	7125	7332	7592	7588	7668	7683	7717	7715	7723	7665
16	제주	7674	7900	7900	7900	7900	7900	7914	7914	7914	...	7724	7739	7739	7739	7826	7285	7285	7343	7343	7343
17 rows × 22 columns

df_last['평균분양가격'] = df_last['분양가격'] * 3.3

df_last

지역명	규모구분	연도	월	분양가격(㎡)	분양가격	평균분양가격
0	서울	전체	2015	10	5841	5841.0	19275.3
1	서울	전용면적 60㎡이하	2015	10	5652	5652.0	18651.6
2	서울	전용면적 60㎡초과 85㎡이하	2015	10	5882	5882.0	19410.6
3	서울	전용면적 85㎡초과 102㎡이하	2015	10	5721	5721.0	18879.3
4	서울	전용면적 102㎡초과	2015	10	5879	5879.0	19400.7
...	...	...	...	...	...	...	...
4330	제주	전체	2019	12	3882	3882.0	12810.6
4331	제주	전용면적 60㎡이하	2019	12	NaN	NaN	NaN
4332	제주	전용면적 60㎡초과 85㎡이하	2019	12	3898	3898.0	12863.4
4333	제주	전용면적 85㎡초과 102㎡이하	2019	12	NaN	NaN	NaN
4334	제주	전용면적 102㎡초과	2019	12	3601	3601.0	11883.3
4335 rows × 7 columns

df_last.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4335 entries, 0 to 4334
Data columns (total 7 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   지역명      4335 non-null   object 
 1   규모구분     4335 non-null   object 
 2   연도       4335 non-null   int64  
 3   월        4335 non-null   int64  
 4   분양가격(㎡)  4058 non-null   object 
 5   분양가격     3957 non-null   float64
 6   평균분양가격   3957 non-null   float64
dtypes: float64(2), int64(2), object(3)
memory usage: 237.2+ KB

df_last['분양가격(㎡)'].describe() #공백문자가 있는데이터가 있어서 결측치로 처리 안한
count     4058
unique    1753
top       2221
freq        17
Name: 분양가격(㎡), dtype: object

df_last['분양가격'].describe() #공백데이터는 결측치로봄
count     3957.000000
mean      3238.128633
std       1264.309933
min       1868.000000
25%       2441.000000
50%       2874.000000
75%       3561.000000
max      12728.000000
Name: 분양가격, dtype: float64
df_last['규모구분'].unique()
array(['전체', '전용면적 60㎡이하', '전용면적 60㎡초과 85㎡이하', '전용면적 85㎡초과 102㎡이하',
       '전용면적 102㎡초과'], dtype=object)
df_last['전용면적'] = df_last['규모구분'].str.replace("전용면적", "")
df_last['전용면적'] = df_last['전용면적'].str.replace("초과","~")
df_last['전용면적'] =  df_last['전용면적'].str.replace('이하',"")
df_last['전용면적'] = df_last['전용면적'].str.replace(" ", "").str.strip()
df_last

지역명	규모구분	연도	월	분양가격(㎡)	분양가격	평균분양가격	전용면적
0	서울	전체	2015	10	5841	5841.0	19275.3	전체
1	서울	전용면적 60㎡이하	2015	10	5652	5652.0	18651.6	60㎡
2	서울	전용면적 60㎡초과 85㎡이하	2015	10	5882	5882.0	19410.6	60㎡~85㎡
3	서울	전용면적 85㎡초과 102㎡이하	2015	10	5721	5721.0	18879.3	85㎡~102㎡
4	서울	전용면적 102㎡초과	2015	10	5879	5879.0	19400.7	102㎡~
...	...	...	...	...	...	...	...	...
4330	제주	전체	2019	12	3882	3882.0	12810.6	전체
4331	제주	전용면적 60㎡이하	2019	12	NaN	NaN	NaN	60㎡
4332	제주	전용면적 60㎡초과 85㎡이하	2019	12	3898	3898.0	12863.4	60㎡~85㎡
4333	제주	전용면적 85㎡초과 102㎡이하	2019	12	NaN	NaN	NaN	85㎡~102㎡
4334	제주	전용면적 102㎡초과	2019	12	3601	3601.0	11883.3	102㎡~
4335 rows × 8 columns

df_last.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4335 entries, 0 to 4334
Data columns (total 8 columns):
 #   Column   Non-Null Count  Dtype  
---  ------   --------------  -----  
 0   지역명      4335 non-null   object 
 1   규모구분     4335 non-null   object 
 2   연도       4335 non-null   int64  
 3   월        4335 non-null   int64  
 4   분양가격(㎡)  4058 non-null   object 
 5   분양가격     3957 non-null   float64
 6   평균분양가격   3957 non-null   float64
 7   전용면적     4335 non-null   object 
dtypes: float64(2), int64(2), object(4)
memory usage: 271.1+ KB
df_last = df_last.drop(['규모구분',"분양가격(㎡)"], axis = 1)
df_last.info()
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 4335 entries, 0 to 4334
Data columns (total 6 columns):
 #   Column  Non-Null Count  Dtype  
---  ------  --------------  -----  
 0   지역명     4335 non-null   object 
 1   연도      4335 non-null   int64  
 2   월       4335 non-null   int64  
 3   분양가격    3957 non-null   float64
 4   평균분양가격  3957 non-null   float64
 5   전용면적    4335 non-null   object 
dtypes: float64(2), int64(2), object(2)
memory usage: 203.3+ KB
df_last
지역명	연도	월	분양가격	평균분양가격	전용면적
0	서울	2015	10	5841.0	19275.3	전체
1	서울	2015	10	5652.0	18651.6	60㎡
2	서울	2015	10	5882.0	19410.6	60㎡~85㎡
3	서울	2015	10	5721.0	18879.3	85㎡~102㎡
4	서울	2015	10	5879.0	19400.7	102㎡~
...	...	...	...	...	...	...
4330	제주	2019	12	3882.0	12810.6	전체
4331	제주	2019	12	NaN	NaN	60㎡
4332	제주	2019	12	3898.0	12863.4	60㎡~85㎡
4333	제주	2019	12	NaN	NaN	85㎡~102㎡
4334	제주	2019	12	3601.0	11883.3	102㎡~
4335 rows × 6 columns

df_last.groupby(['지역명'])['평균분양가격'].mean()
지역명
강원     7890.750000
경기    13356.895200
경남     9268.778138
경북     8376.536515
광주     9951.535821
대구    11980.895455
대전    10253.333333
부산    12087.121200
서울    23599.976400
세종     9796.516456
울산    10014.902013
인천    11915.320732
전남     7565.316532
전북     7724.235484
제주    11241.276712
충남     8233.651883
충북     7634.655600
Name: 평균분양가격, dtype: float64
df_last
지역명	연도	월	분양가격	평균분양가격	전용면적
0	서울	2015	10	5841.0	19275.3	전체
1	서울	2015	10	5652.0	18651.6	60㎡
2	서울	2015	10	5882.0	19410.6	60㎡~85㎡
3	서울	2015	10	5721.0	18879.3	85㎡~102㎡
4	서울	2015	10	5879.0	19400.7	102㎡~
...	...	...	...	...	...	...
4330	제주	2019	12	3882.0	12810.6	전체
4331	제주	2019	12	NaN	NaN	60㎡
4332	제주	2019	12	3898.0	12863.4	60㎡~85㎡
4333	제주	2019	12	NaN	NaN	85㎡~102㎡
4334	제주	2019	12	3601.0	11883.3	102㎡~
4335 rows × 6 columns

df_last.groupby(['전용면적'])['평균분양가격'].mean()
전용면적
102㎡~       11517.705634
60㎡         10375.137421
60㎡~85㎡     10271.040071
85㎡~102㎡    11097.599573
전체          10276.086207
Name: 평균분양가격, dtype: float64
df_last.groupby(['지역명', '전용면적'])['평균분양가격'].mean().unstack().round()
전용면적	102㎡~	60㎡	60㎡~85㎡	85㎡~102㎡	전체
지역명					
강원	8311.0	7567.0	7486.0	8750.0	7478.0
경기	14772.0	13252.0	12524.0	13678.0	12560.0
경남	10358.0	8689.0	8619.0	10018.0	8659.0
경북	9157.0	7883.0	8061.0	8774.0	8079.0
광주	11042.0	9431.0	9911.0	9296.0	9904.0
대구	13087.0	11992.0	11779.0	11141.0	11771.0
대전	14877.0	9176.0	9711.0	9037.0	9786.0
부산	13208.0	11354.0	11865.0	12073.0	11936.0
서울	23446.0	23213.0	22787.0	25944.0	22610.0
세종	10107.0	9324.0	9775.0	9848.0	9805.0
울산	9974.0	9202.0	10503.0	8861.0	10493.0
인천	14362.0	11241.0	11384.0	11528.0	11257.0
전남	8168.0	7210.0	7269.0	7909.0	7284.0
전북	8194.0	7610.0	7271.0	8276.0	7293.0
제주	10523.0	14022.0	10621.0	10709.0	10785.0
충남	8689.0	7911.0	7819.0	9120.0	7815.0
충북	8195.0	7103.0	7264.0	8391.0	7219.0
g = df_last.groupby(['연도', '지역명'])['평균분양가격'].mean()
g.unstack().transpose()
연도	2015	2016	2017	2018	2019
지역명					
강원	7188.060	7162.903846	7273.560000	8219.255000	8934.475000
경기	11060.940	11684.970000	12304.980000	14258.420000	15665.540000
경남	8459.220	8496.730000	8786.760000	9327.670000	10697.615789
경북	7464.160	7753.405000	8280.800000	8680.776923	9050.250000
광주	7916.700	9190.683333	9613.977551	9526.953333	12111.675000
대구	9018.900	10282.030000	12206.700000	12139.252632	14081.650000
대전	8190.600	8910.733333	9957.158491	10234.106667	12619.200000
부산	10377.400	10743.535000	11560.680000	12889.965000	13537.865000
서울	20315.680	21753.435000	21831.060000	23202.245000	28286.830000
세종	8765.020	8857.805000	9132.505556	10340.463158	11299.394118
울산	9367.600	9582.574138	10666.935714	10241.400000	10216.250000
인천	10976.020	11099.055000	11640.600000	11881.532143	13249.775000
전남	6798.880	6936.600000	7372.920000	7929.845000	8219.275862
전북	7110.400	6906.625000	7398.973585	8174.595000	8532.260000
제주	7951.075	9567.480000	12566.730000	11935.968000	11828.469231
충남	7689.880	7958.225000	8198.422222	8201.820000	8748.840000
충북	6828.800	7133.335000	7473.120000	8149.295000	7970.875000
g
연도    지역명
2015  강원      7188.060000
      경기     11060.940000
      경남      8459.220000
      경북      7464.160000
      광주      7916.700000
                 ...     
2019  전남      8219.275862
      전북      8532.260000
      제주     11828.469231
      충남      8748.840000
      충북      7970.875000
Name: 평균분양가격, Length: 85, dtype: float64
pd.pivot_table(df_last, index=['지역명'], values = ['평균분양가격'], aggfunc='sum')
평균분양가격
지역명	
강원	1909561.5
경기	3339223.8
경남	2289388.2
경북	2018745.3
광주	2000258.7
대구	2899376.7
대전	2030160.0
부산	3021780.3
서울	5899994.1
세종	2321774.4
울산	1492220.4
인천	2931168.9
전남	1876198.5
전북	1915610.4
제주	2461839.6
충남	1967842.8
충북	1908663.9
pd.pivot_table(df_last, index = ['전용면적'], values = ['평균분양가격'], aggfunc="mean")
평균분양가격
전용면적	
102㎡~	11517.705634
60㎡	10375.137421
60㎡~85㎡	10271.040071
85㎡~102㎡	11097.599573
전체	10276.086207
df_last.pivot_table(index='전용면적', columns = '지역명', values = '평균분양가격').round()
지역명	강원	경기	경남	경북	광주	대구	대전	부산	서울	세종	울산	인천	전남	전북	제주	충남	충북
전용면적																	
102㎡~	8311.0	14772.0	10358.0	9157.0	11042.0	13087.0	14877.0	13208.0	23446.0	10107.0	9974.0	14362.0	8168.0	8194.0	10523.0	8689.0	8195.0
60㎡	7567.0	13252.0	8689.0	7883.0	9431.0	11992.0	9176.0	11354.0	23213.0	9324.0	9202.0	11241.0	7210.0	7610.0	14022.0	7911.0	7103.0
60㎡~85㎡	7486.0	12524.0	8619.0	8061.0	9911.0	11779.0	9711.0	11865.0	22787.0	9775.0	10503.0	11384.0	7269.0	7271.0	10621.0	7819.0	7264.0
85㎡~102㎡	8750.0	13678.0	10018.0	8774.0	9296.0	11141.0	9037.0	12073.0	25944.0	9848.0	8861.0	11528.0	7909.0	8276.0	10709.0	9120.0	8391.0
전체	7478.0	12560.0	8659.0	8079.0	9904.0	11771.0	9786.0	11936.0	22610.0	9805.0	10493.0	11257.0	7284.0	7293.0	10785.0	7815.0	7219.0
t = pd.pivot_table(df_last, index=["연도",'지역명'], values = '평균분양가격')
t
평균분양가격
연도	지역명	
2015	강원	7188.060000
경기	11060.940000
경남	8459.220000
경북	7464.160000
광주	7916.700000
...	...	...
2019	전남	8219.275862
전북	8532.260000
제주	11828.469231
충남	8748.840000
충북	7970.875000
85 rows × 1 columns

t.loc[2017]
평균분양가격
지역명	
강원	7273.560000
경기	12304.980000
경남	8786.760000
경북	8280.800000
광주	9613.977551
대구	12206.700000
대전	9957.158491
부산	11560.680000
서울	21831.060000
세종	9132.505556
울산	10666.935714
인천	11640.600000
전남	7372.920000
전북	7398.973585
제주	12566.730000
충남	8198.422222
충북	7473.120000
import matplotlib.pyplot as plt
plt.rc("font", family='Malgun Gothic')
g = df_last.groupby(['지역명'])['평균분양가격'].mean().sort_values(ascending = False)
g
지역명
서울    23599.976400
경기    13356.895200
부산    12087.121200
대구    11980.895455
인천    11915.320732
제주    11241.276712
대전    10253.333333
울산    10014.902013
광주     9951.535821
세종     9796.516456
경남     9268.778138
경북     8376.536515
충남     8233.651883
강원     7890.750000
전북     7724.235484
충북     7634.655600
전남     7565.316532
Name: 평균분양가격, dtype: float64

 

g.plot()

g.hist()

g.plot.bar(rot = 0, figsize = (10,3)) #rot 가로로 글씨표시 

df_last.groupby(['전용면적'])['평균분양가격'].mean().plot.bar(rot = 0)

df_last.groupby(['연도'])['평균분양가격'].mean().plot.bar(rot=0)

df_last.pivot_table(index='월',columns='연도', values='평균분양가격').plot.box()

df_last.pivot_table(index='월',columns=['연도','전용면적'], values='평균분양가격').plot.box()
p = df_last.pivot_table(index='월',columns=['연도','전용면적'], values='평균분양가격')
p.plot.box(rot =  30, figsize = (15,3))

p.plot.bar(rot = 0, figsize=(10,3))

p = df_last.pivot_table(index='월',columns=['연도'], values='평균분양가격')
p.plot(figsize= (10,3), rot =0)

p = df_last.pivot_table(index='연도',columns=['월'], values='평균분양가격')
p.plot(figsize= (10,3), rot =0)