KT AIVLE/Daily Review

241007~241008

bestone888 2024. 10. 9. 19:48

241007 ~ 241008

In [2]:
## 데이터 전처리_준공일자
In [3]:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns

from statsmodels.graphics.mosaicplot import mosaic
import scipy.stats as spst

import joblib
In [4]:
import matplotlib.font_manager as fm

# 설치된 폰트
font_list = [font.name for font in fm.fontManager.ttflist]

# 맑은고딕이 있는지 확인
'Malgun Gothic' in font_list
Out[4]:
True
In [5]:
plt.rcParams['font.family'] = 'Malgun Gothic'
data = pd.read_excel('data.xlsx')
In [6]:
data.head()
Out[6]:
단지코드단지명총세대수전용면적별세대수지역준공일자건물형태난방방식승강기설치여부단지내주차면수전용면적공급면적(공용)임대보증금임대료실차량수01234
C0001 엘에이치 서초4단지 78 35 서울 20131204.0 계단식 개별가스난방 전체동 설치 120 51.89 19.2603 50758000 620370 109
C0001 엘에이치 서초4단지 78 43 서울 20131204.0 계단식 개별가스난방 전체동 설치 120 59.93 22.2446 63166000 665490 109
C0002 LH삼성아파트 35 26 서울 20130801.0 복도식 개별가스난방 전체동 설치 47 27.75 16.5375 63062000 458640 35
C0002 LH삼성아파트 35 9 서울 20130801.0 복도식 개별가스난방 전체동 설치 47 29.08 17.3302 63062000 481560 35
C0003 강남LH8단지 88 7 서울 20131023.0 계단식 개별가스난방 전체동 설치 106 59.47 21.9462 72190000 586540 88
In [7]:
data.shape
Out[7]:
(1157, 15)
In [8]:
# 준공일자 -> 준공연도

# 준공일자 NaN
data['준공일자'].isnull().sum()
Out[8]:
54
In [9]:
# NaN -> 0000

# 결측치 -> nan(str)
data['준공일자'] = data['준공일자'].astype(str)
(data['준공일자'] == 'nan').sum()
Out[9]:
54
In [10]:
# nan -> '0000'
data['준공일자'].replace({'nan':'0000'}, inplace = True)
(data['준공일자'] == 'nan').sum()
C:\Users\User\AppData\Local\Temp\ipykernel_22080\2904634826.py:2: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.
The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.

For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.


  data['준공일자'].replace({'nan':'0000'}, inplace = True)
Out[10]:
0
In [11]:
data['준공연도'] = data['준공일자'].str[:4].astype(int)
data['준공연도'].replace({0: 1992}, inplace= True)
C:\Users\User\AppData\Local\Temp\ipykernel_22080\2264956490.py:2: FutureWarning: A value is trying to be set on a copy of a DataFrame or Series through chained assignment using an inplace method.
The behavior will change in pandas 3.0. This inplace method will never work because the intermediate object on which we are setting values always behaves as a copy.

For example, when doing 'df[col].method(value, inplace=True)', try using 'df.method({col: value}, inplace=True)' or df[col] = df[col].method(value) instead, to perform the operation inplace on the original object.


  data['준공연도'].replace({0: 1992}, inplace= True)
In [12]:
(data['준공연도'] == 0).sum()
Out[12]:
0
In [13]:
sns.boxplot(y = '준공연도', data = data)
plt.show()
In [14]:
data['준공연도'].min()
Out[14]:
1111
In [15]:
data.loc[data['준공연도'] == 1900, '단지명']
Out[15]:
476    남산휴먼시아1단지
477    남산휴먼시아1단지
478    남산휴먼시아1단지
Name: 단지명, dtype: object
In [16]:
data.loc[data['준공연도'] < 1992]['단지명'].unique()
Out[16]:
array(['푸른숨 9단지 10년 공공임대', '남산휴먼시아1단지', '광명역세권 휴먼시아2단지', '광명역세권 휴먼시아1단지'],
      dtype=object)
In [17]:
temp = data.loc[data['단지명'].isin(['푸른숨 9단지 10년 공공임대', '남산휴먼시아1단지', '광명역세권 휴먼시아2단지', '광명역세권 휴먼시아1단지'])]
temp.drop_duplicates(subset = ['단지명'])
Out[17]:
단지코드단지명총세대수전용면적별세대수지역준공일자건물형태난방방식승강기설치여부단지내주차면수전용면적공급면적(공용)임대보증금임대료실차량수준공연도214476888894
C0061 푸른숨 9단지 10년 공공임대 756 200 강원 19700101.0 계단식 NaN NaN 764 51.95 21.9539 27586000 322710 902 1970
C0156 남산휴먼시아1단지 499 276 대구경북 19000101.0 혼합식 개별가스난방 전체동 설치 507 51.81 22.7388 31360000 213230 568 1900
C0278 광명역세권 휴먼시아2단지 754 116 경기 11111111.0 복도식 지역난방 전체동 설치 683 39.79 17.7940 22830000 189840 807 1111
C0279 광명역세권 휴먼시아1단지 1354 420 경기 11111111.0 복도식 지역난방 전체동 설치 999 39.79 18.1471 22830000 189840 1295 1111
In [18]:
# 이상치 1992로 채우기
data.loc[data['준공연도']<1992, '준공연도'] = 1992
In [19]:
data['준공연도'].min()
Out[19]:
1992
In [20]:
# 준공일자 제거
data.drop(columns = ['준공일자'], inplace = True)
In [21]:
data
Out[21]:
단지코드단지명총세대수전용면적별세대수지역건물형태난방방식승강기설치여부단지내주차면수전용면적공급면적(공용)임대보증금임대료실차량수준공연도01234...11521153115411551156
C0001 엘에이치 서초4단지 78 35 서울 계단식 개별가스난방 전체동 설치 120 51.89 19.2603 50758000 620370 109 2013
C0001 엘에이치 서초4단지 78 43 서울 계단식 개별가스난방 전체동 설치 120 59.93 22.2446 63166000 665490 109 2013
C0002 LH삼성아파트 35 26 서울 복도식 개별가스난방 전체동 설치 47 27.75 16.5375 63062000 458640 35 2013
C0002 LH삼성아파트 35 9 서울 복도식 개별가스난방 전체동 설치 47 29.08 17.3302 63062000 481560 35 2013
C0003 강남LH8단지 88 7 서울 계단식 개별가스난방 전체동 설치 106 59.47 21.9462 72190000 586540 88 2013
... ... ... ... ... ... ... ... ... ... ... ... ... ... ...
C0356 덕유마을 주공1단지 956 956 경기 복도식 지역가스난방 전체동 설치 202 26.37 12.7500 9931000 134540 243 1994
C0358 화천신읍(공공실버) 영구임대 120 66 강원 복도식 NaN 전체동 설치 40 24.83 15.1557 2129000 42350 47 2020
C0358 화천신읍(공공실버) 영구임대 120 54 강원 복도식 NaN 전체동 설치 40 33.84 20.6553 2902000 57730 47 2020
C0359 영천야사4 447 149 대구경북 복도식 중앙유류난방 전체동 설치 89 26.37 13.3800 7134000 118880 78 1994
C0359 영천야사4 447 298 대구경북 복도식 중앙유류난방 전체동 설치 89 31.32 13.8500 8122000 131140 78 1994

1157 rows × 15 columns

In [ ]:
 

'KT AIVLE > Daily Review' 카테고리의 다른 글

241011  (0) 2024.10.13
241010  (0) 2024.10.10
241004  (0) 2024.10.06
241002  (0) 2024.10.03
240930  (0) 2024.10.01