데이터분석 실전1_3(분석데이터 EDA)

2 minute read

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()

boxplot

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)

bar_plot

data7.iloc[:,0:5].plot.bar()

bar_plot2



Leave a comment