# 拉格朗日插值
from scipy.interpolate import lagrange
import pandas as pd
import numpy as np
data = pd.read_csv(
'../data/missing_data.csv'
)# 檢視一下資料
data.info(
)
rangeindex: 21 entries, 0 to 20
data columns (total 3 columns):
# column non-null count dtype
--- ------ -------------- -----
0 a 19 non-null float64
1 b 17 non-null float64
2 c 17 non-null float64
dtypes: float64(3)
memory usage: 632.0 bytes
#拉格朗日插值
#dropna().index用於記錄非缺失值的下標
#dropna().values用於記錄非缺失值的實際值
for i in
['a'
,'b'
,'c']:
# 訓練模型
la = lagrange(data.loc[
:,i]
.dropna(
).index,data.loc[
:,i]
.dropna(
).values)
# 用list_d用於記錄當前列缺失值所在的行(記錄缺失值下標)
list_d =
list
(set
(np.arange(0,
21)).difference(
set(data.loc[
:,i]
.dropna(
).index)))
data.loc[list_d,i]
= la(list_d)
# 檢視一下資料
data.info(
)
rangeindex: 21 entries, 0 to 20
data columns (total 3 columns):
# column non-null count dtype
--- ------ -------------- -----
0 a 21 non-null float64
1 b 21 non-null float64
2 c 21 non-null float64
dtypes: float64(3)
memory usage: 632.0 bytes
data_ele = pd.read_csv(
'../data/ele_loss.csv'
)data_ala = pd.read_csv(
'../data/alarm.csv'
,encoding=
"gbk"
)
(49, 4)
print
('檢視ele_loss.csv資料形狀:'
)data_ele.shape
檢視ele_loss.csv資料形狀:
(49, 4)
print
('檢視alarm.csv資料形狀:'
)data_ala.shape
檢視alarm.csv資料形狀:
(25, 3)
data = pd.merge(data_ele,data_ala,left_on =
['id'
,'date'
],right_on =
['id'
,'date'
],how=
'inner'
)print
('合併後的形狀:'
,data.shape)
data
合併後的形狀: (6, 5)
iddate
eleloss
alarm
021261001
2010/9/3
858.0
0.151048
電流不平衡
121261001
2010/9/6
883.5
0.162778
c相電流過負荷
221261001
2010/9/16
915.5
0.162028
c相電流過負荷
321261001
2010/9/16
915.5
0.162028
c相電流過負荷
421261001
2010/9/17
961.0
0.166650
a相電流過負荷
521261001
2010/9/17
961.0
0.166650
電流不平衡
data = pd.read_csv(
'../data/model.csv'
,encoding =
'gbk'
)def
standardscaler
(data)
: data =
(data - data.mean())
/data.std(
)return data
s = standardscaler(data)
s.head(
)
電量趨勢下降指標
線損指標
告警類指標
是否竊漏電
00.612777
0.974549
-0.161216
2.500687
10.612777
-1.022590
2.653616
2.500687
2-0.343352
0.974549
-0.161216
2.500687
33.003099
-1.022590
-1.099494
-0.398516
40.134712
0.974549
-1.099494
-0.398516
使用Pandas進行資料清洗
資料清洗的目的是修正異常值,以更好地進行運算和觀察結果。通過pandas對序列或資料幀的清洗分為兩個步驟 異常檢測和資料修正。1.異常檢測 pandas中的空值用 nan 表示,可以通過呼叫isnull和notnull來檢測序列物件和資料幀物件是否為異常值。2.資料修正資料檢測完畢之後,需要對資料進...
使用Seaborn和Pandas進行資料視覺化
目錄介紹 在python中比較視覺化庫 seaborn視覺化型別 建立乙個條形圖 建立seaborn折線圖 有了我們的資料集之後,我們將快速檢視可以使用流行的 python 庫從資料集輕鬆建立視覺化,然後逐步介紹乙個視覺化示例。本文是使用 python 和pandas 進行資料清洗系列的一部分。它旨...
Python 使用Pandas進行資料預處理
利用pandas庫中的get dummies函式對類別型特徵進行啞變數處理。get dummies語法 pandas.get dummies data,prefix none,prefix sep dummy na false,columns none,sparse false,drop first...