交大用電分析

黃岳涵 a.k.a.Bojne
2015 ~ 2017 高中自學生
2017 ~ NOW 交大應數系
www.sli.do/SITCON18-T22
第一次資料分析
學測成績會上哪一間大學啊

還沒開始就離題:自學




給問嗎?
-
不會寫程式的有多少?預期1/10
-
知道Pandas的有多少?預期 1/3
-
嘗試過校園用電分析的有多少?預期 1/3
-
對這個主題有興趣的?預期 1/4
我們提出這些問題:
「學校的用電有多少?」
「用電量隨時間的變化」
「用電量隨空間的變化」
「哪些電可能是可以被節省的?」
這場 Talk 的設定
程度|新手(因為我也是新手)
重點|專案經驗 + 資料分析
工具|Pandas(分析), PlotDB(視覺化)
一句話解釋這場Talk
「透過資料分析了解交大用電行為,並試圖找出節電方案。」
其實還離得遠🙃
一開始不會,現在有進步 🙂
從活動
強大的作品
得到啟發




選擇開始資料分析的題目
有興趣的
有資料的
節電
用更容易理解的方式傳達
校園用電分析
Step 1 了解狀況
Fig.1 Baby step
Fig.2 Baby step
A/ 訪問
請教學校最了解用電的人:
- 有資料嗎?資料是如何被收集的?
- 學校如何了解用電狀況?
- 學校的節電難題與政策?
B/ 了解議題
- 讀文件,例如:105年交大能源會議
- 了解用電基本知識:電費多少?
- 參考別人的專案:有沒有人做過類似的主題?
訪問的結果
-
學校的用電架構++
-
設備節電|管理節電++
-
校園節電,學生的施力點++
學校營繕組
大樓管理人
資料分析
視覺化
電費小教室
-
台電怎麼收費?
時段
季節
讀資料的收穫
-
能源黑客松、台大校園節電
-
資料分析與視覺化
-
學校的會議規則
Understand the big picture
資料處理
Step Two: The Data
資料說明
- 時間
- 館舍
- 迴路
- 區域
- 種類
- 用量
2018/03/10 13:00
科學一館
主迴路
北區
教學
54.87 度/Hr
我們可以分析什麼問題?
工具說明: Pandas & PlotDB


分析、處理、編輯
欄位式資料


Pandas 資料型態
Series (壽司)
Value 海苔:True
DataFrame (一盤壽司)
DF[魚 = ‘紅色’] 就會有 [鮪魚壽司, 鮭魚壽司, etc]
前置準備
-
下載
-
讀資料
-
了解資料

三個向度:
1/ 資料時間
2/ 紀錄間隔
3/ 館舍位置
讀進來
了解資料
import pandas as pd
df = pd.read_csv([PATH])
df.head() #頭長怎樣
df.describe() #數值的統計
df.Time.value_counts() #1:00有幾筆, 2:00有幾筆, etc
df.Building.unique() #Building 這一欄有多少種類的值
產生自己的欄位
# 產生關於時間的欄位
def generate_date_time_columns(df):
if('DateTime' in df.columns):
df['Date'] = df.DateTime.str[:10]
df['Date'] = pd.to_datetime(df['Date'], format='%Y-%m-%d')
df['Weekday'] = df['Date'].dt.dayofweek + 1
df['Time'] = df.DateTime.str[11:]
df['Week'] = df['Date'].dt.week
else:
print('DataTime not in column. Please rename columns name.')
return df
# cost_rate:一度電大概多少錢
def generate_cost_columns(df, cost_rate):
df['Cost'] = df.Usage * cost_rate
print('Column "Cost" had been generated!')
return df
日期、時間、星期幾、第幾週、電費
離群值是魔鬼
極端值是天使
-
先弄掉離群值
才能畫出東西 -
探討發生的原因

處理前|處理後
#把原始資料的空格拿掉
def clear_white_space(df):
print("Before: ", df.Building.unique())
for y in df.select_dtypes(include = 'object').columns:
df[y] = df[y].str.strip()
print('After: ', df.Building.unique())
clear_white_space(df)



BUG:一棟樓一筆紀錄
不能看分樓層、分房間討論R
哭哭
議題一
對象:在一棟大樓中
用電隨時間變化是如何?
極大 / 極小值發生在何時?
議題二
對象:不同大樓之間
用電的變化是否有不同?
議題一
館舍比較
教學用電
106 年平均月用電比例
教學館
106年
平均月用電比例
宿舍
106年
平均月用電比例
議題二
單一館舍分析
資料來源:科學三館,2016.09 - 2017.08
十二舍用電分析

日期
用
電
度
數
2017.09.01 - 2017.11.10
每日用電
十二舍用電分析

Index(隨時間正序)
用
電
度
數
2017.09.01 - 2017.11.10
每小時用電
顏色代表第幾周
十二舍用電分析

Weekday
用
電
度
數
2017.09.01 - 2017.11.10
一週平均用電
十二舍用電分析

Weekday
用
電
度
數
2017.09.01 - 2017.11.10
每周平均用電
顏色代表第幾周
十二舍用電分析

時間(小時)
用
電
度
數
2017.09.01 - 2017.11.10
小時平均用電
00:00
23:00
十二舍用電分析

時間(小時)
用
電
度
數
2017.09.01 - 2017.11.10
小時平均用電
00:00
23:00
顏色代表Weekday
十二舍用電分析

時間(小時)
用
電
度
數
2017.09.01 - 2017.11.10
小時平均用電
00:00
23:00
顏色代表第幾周
十二舍用電分析

時間(小時)
成
長
率
2017.09.01 - 2017.11.10
小時用電成長率
00:00
23:00
顏色代表星期幾
十二舍用電分析

日期
夜:3 am - 6 am, 日:8 am - 18 pm ( 平均值)
小時日夜用電比
紅色:夜用電
綠色:日用電
紫色:日/夜 (經縮放)
應用
1/視覺化
2/提供能源管理者更易懂的分析
其實還在構想(有建議嗎?)
如何透過行為科學讓人省電
Idea: 梅竹節電賽

Ask
Good
Questions
*最簡單也最重要的一件事
文章|提問的能力

未來分享資源
- 如何開始進入資料分析
- 校園資料分析專案手冊
- 資料分析資源包
Follow
專案後續進展
https://goo.gl/5UFAYH
為什麼叫 BOJNE™
交大用電分析|SITCON
By johannhuang
交大用電分析|SITCON
- 878