데이터분석 실전1_3(분석데이터 EDA)
1. 기초통계 분석, 상관분석
data6.describe()
NX1343 NX1440 NX1441 NX1332 NX1445 temp_aver
count 365.000000 365.00000 365.000000 365.000000 365.000000 365.000000
mean 11.481619 23.78091 100.463537 4.287866 37.232118 12.167397
std 6.639761 20.16818 46.954271 7.327680 27.303255 10.862391
min 3.109000 3.55600 5.888000 0.071000 3.011000 -14.600000
25% 4.308000 10.49000 81.096000 0.803000 20.345000 2.700000
50% 10.680000 14.44800 88.295000 2.949000 27.720000 14.400000
75% 13.853000 33.87400 135.462000 4.296000 52.952000 21.400000
max 33.390000 87.00300 201.210000 73.719000 120.123000 30.900000
import matplotlib.pyplot as plt
%matplotlib inline
data6.iloc[:,1:7].plot.box()
NX1441 지역과 기온 데이터는 상대적으로 아웃레이어가 거의 없지만, 나머지 데이터들은 평균의 값을 신뢰할 수 없을 정도로 이상치들이 많이 포함되어 있습니다. 실제 분석 장면에서는 선형성을 만족하지 않기 때문에 로그변환 같은 것을 통해 보정해줘야 하지만, 이번에는 그냥 넘어가겠습니다.
corr=data6.corr(method='pearson')
corr
NX1343 NX1440 NX1441 NX1332 NX1445 temp_aver
NX1343 1.000000 0.495428 0.180410 0.173131 0.528793 0.206530
NX1440 0.495428 1.000000 0.138540 0.325132 0.901072 -0.468740
NX1441 0.180410 0.138540 1.000000 0.294125 0.242664 -0.021706
NX1332 0.173131 0.325132 0.294125 1.000000 0.374619 -0.170345
NX1445 0.528793 0.901072 0.242664 0.374619 1.000000 -0.419091
temp_aver 0.206530 -0.468740 -0.021706 -0.170345 -0.419091 1.000000
재미있는 결과인데 NX1343의 경우에는 온도가 높아지면 전기사용량도 높아지는 경향이 나타났고, 나머지 4개의 지역은 온도가 높아지면 반대로 전기사용량이 줄어드는 것으로 나타났습니다. NX1440, NX1445 지역이 상대적으로 기온과 상관이 높게 나타났습니다.
2. 요일별로 평균 사용량 분석
전반적으로 분석을 마쳤지만, 산업도시의 경우 요일별로 전기사용량의 차이가 높을 수 있기 때문에 단순히 전체 평균을 가지고 분석하기 어려운 경향이 있습니다.
따라서 요일별로 각 5개의 지역의 전기 사용량을 분석해보겠습니다.
data6['Day']=data6['Time'].dt.strftime('%a')
#Day라는 열을 요일로 변경하여 컬럼에 추가합니다.
data6.head()
Time NX1343 NX1440 NX1441 NX1332 NX1445 temp_aver Day
0 2017-07-01 3.109 5.582 151.515 2.904 24.844 24.1 Sat
1 2017-07-02 3.148 5.634 149.008 3.304 14.055 23.6 Sun
2 2017-07-03 23.226 29.651 150.318 9.062 44.102 23.2 Mon
3 2017-07-04 23.415 23.772 150.511 2.134 48.467 24.8 Tue
4 2017-07-05 30.266 23.145 164.994 13.139 51.013 26.0 Wed
pd.options.display.float_format = '{:.1f}'.format # 출력내용을 소숫점 1째 자리로 변경
mean1=data6.groupby('Day').mean()
mean1.loc[['Mon',"Tue","Wed","Thu","Fri","Sat","Sun"],:]
NX1343 NX1440 NX1441 NX1332 NX1445 temp_aver
Day
Mon 14.7 33.7 51.5 3.7 46.1 12.2
Tue 13.4 28.4 109.0 3.6 45.0 12.4
Wed 13.6 29.2 107.6 3.8 47.5 12.0
Thu 14.2 29.3 110.8 5.0 44.1 11.5
Fri 14.1 29.1 109.9 8.6 44.6 12.1
Sat 5.2 9.0 107.6 2.8 20.4 12.6
Sun 5.3 8.0 106.7 2.6 13.3 12.3
인천의 각 지역별로 요일에 따라 전기를 사용하는 방식이 조금씩 다르다는 것을 알 수 있습니다.
NX1343 NX1440 NX1445 지역은 월부터 금요일까지 사용량이 많고, 토요일, 일요일은 평소의 절반이하인 것으로 봐서 사무실이 많은 곳인거 같습니다.
NX1332은 상대적으로 전기사용량이 적은 편이고 금요일에 주로 많이 사용하는 것을 봤을 때, 주거지역 혹은 주거지역 근처 식당 등일 것 같습니다.(어디까지나 제 추측입니다)
반대로 NX1441은 월요일마다 쉬는 공장같은 느낌이 듭니다.
data7.iloc[:,0:5].plot.bar(stacked=True)
data7.iloc[:,0:5].plot.bar()
Leave a comment