第5章 使用pandas進行資料預處理 實訓

2021-10-13 07:18:59 字數 3578 閱讀 8101

# 拉格朗日插值

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...