《Python資料分析與挖掘實戰》程式碼問題
本文轉自:http://blog.csdn.net/qq_27469517/article/details/53482563
整個第四章都是資料預處理。
4.1是資料清洗。就是處理無關資料,缺失或者異常資料等等。
具體看書,就不贅述了,還是上程式碼實踐。
書上給的程式碼是有問題的!
- #拉格朗日插值程式碼
- import pandas as pd #匯入資料分析庫Pandas
- from scipy.interpolate import lagrange #匯入拉格朗日插值函式
-
inputfile = 'data/catering_sale.xls'#銷量資料路徑
- outputfile = 'tmp/sales.xls'#輸出資料路徑
- data = pd.read_excel(inputfile) #讀入資料
- data[u'銷量'][(data[u'銷量'] < 400) | (data[u'銷量'] > 5000)] = None#過濾異常值,將其變為空值
- #自定義列向量插值函式
- #s為列向量,n為被插值的位置,k為取前後的資料個數,預設為5
- def ployinterp_column(s, n, k=5):
- y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取數
-
y = y[y.notnull()] #剔除空值
- return lagrange(y.index, list(y))(n) #插值並返回拉格朗日插值結果
- #逐個元素判斷是否需要插值
- for i in data.columns:
- for j in range(len(data)):
- if (data[i].isnull())[j]: #如果為空即插值。
- data[i][j] = ployinterp_column(data[i], j)
- data.to_excel(outputfile) #輸出結果,寫入檔案
究其原因,應該是
-
data[u'銷量'][(data[u
改正方法主要是 .loc 函式進行修改。
.loc 函式主要是選定指定列操作,參見 http://blog.csdn.net/chixujohnny/article/details/51095817
參考下面這個連結
http://blog.csdn.net/o1101574955/article/details/51627401
給出了修改版:
- # -*- coding:utf-8 -*-
- #拉格朗日插值程式碼
- import pandas as pd #匯入資料分析庫Pandas
- from scipy.interpolate import lagrange #匯入拉格朗日插值函式
- inputfile = 'data/catering_sale.xls'#銷量資料路徑
- outputfile = 'tmp/sales.xls'#輸出資料路徑
- data = pd.read_excel(inputfile) #讀入資料
- #data[u'銷量'][(data[u'銷量'] < 400) | (data[u'銷量'] > 5000)] = None #過濾異常值,將其變為空值
- row_indexs = (data[u'銷量'] < 400) | (data[u'銷量'] > 5000) #得到過濾資料的索引
- data.loc[row_indexs,u'銷量'] = None#過濾資料
- #自定義列向量插值函式
- #s為列向量,n為被插值的位置,k為取前後的資料個數,預設為5
- def ployinterp_column(s, n, k=5):
- y = s[list(range(n-k, n)) + list(range(n+1, n+1+k))] #取數
- y = y[y.notnull()] #剔除空值
- return lagrange(y.index, list(y))(n) #插值並返回拉格朗日插值結果
- #逐個元素判斷是否需要插值
- for i in data.columns:
- for j in range(len(data)):
- if (data[i].isnull())[j]: #如果為空即插值。
- # data[i][j] = ployinterp_column(data[i], j)
- data.loc[j,i] = ployinterp_column(data[i], j)
- data.to_excel(outputfile) #輸出結果,寫入檔案
這時候我在 http://blog.csdn.net/aq_cainiao_aq/article/details/53257136 也看見一篇,我沒試過,可以參考。
s為列向量,n為被插值的位置,k為取前後的資料個數,預設為5。
返回的拉格朗日函式有兩個值,y.index應該是插值位置,list(y) 就是結果吧。
可惜沒找到關於 lagrange 函式的說明,只能猜。
現在的問題是,日期全變成了 ######,想想怎麼修改呢?
其實日期是沒問題的,但是後面多了時分秒,太長了就變成了######。我不想要這個東西。
去百度搜索了很久,http://blog.csdn.net/dm_vincent/article/details/48696857 參考了一下這個,但是感覺沒看懂。
不過呢,插值算是處理好了。
===================================================================================================
4.3講的是資料變換
主要是資料的規範化處理,把資料轉換成“適當的”形式。
程式碼就是狗屎,我自己補充了一下,給的程式碼不僅沒有 print ,還tm少了一個 import,真的服了
- #-*- coding: utf-8 -*-
- #資料規範化
- import pandas as pd
- import numpy as np
- datafile = 'data/normalization_data.xls'#引數初始化
- data = pd.read_excel(datafile, header = None) #讀取資料
- print (data - data.min())/(data.max() - data.min()) #最小-最大規範化
- print (data - data.mean())/data.std() #零-均值規範化
- print data/10**np.ceil(np.log10(data.abs().max())) #小數定標規範化
《Python資料分析與挖掘實戰》程式碼問題
本文轉自:http://blog.csdn.net/qq_27469517/article/details/53482563 整個第四章都是資料預處理。 4.1是資料清洗。就是處理無關資料,缺失或者異常資料等等。 具體看書,就不贅述了,還是上程式碼實
《python資料分析與挖掘實戰》筆記-3.1程式碼問題
問題 今天看到《python資料分析與挖掘實戰》這本書的第三章的第一份程式碼,照著書上的程式碼敲了一遍,發現在異常值處理的部分會報錯。 x = p['fliers'][0].get_xdata() y = p['fliers'][0].get_ydata()
菜鷄日記——《Python資料分析與挖掘實戰》實驗6-1 拉格朗日插值法
實驗6-1 用拉格朗日插值法 題目描述:用拉格朗日插值法對missing_data.xls中表格的空值進行填補。 # p1, lab6 # Fill all of the null values with Lagrange's interpolation # Data file name i
Python資料分析與挖掘實戰 pdf下載
Python資料分析與挖掘實戰是10餘位資料探勘領域資深專家和科研人員,10餘年大資料探勘諮詢與實施經驗結晶。從資料探勘的應用出發,以電力、航空、醫療、網際網路、生產製造以及公共服務等行業真實案例為主線,深入淺出介紹Python資料探勘建模過程,實踐性極強。 本書共15章,分兩個部分:基礎
推薦書籍《Python資料分析與挖掘實戰》附下載連結
“10餘位資料探勘領域資深專家和科研人員,10餘年大資料探勘諮詢與實施經驗結晶。從資料探勘的應用出發,以電力、航空、醫療、網際網路、生產製造以及公共服務等行業真實案例為主線,深入淺出介紹Python資料探勘建模過程,實踐性極強。 本書共15章,分兩個部分:基礎
《Python資料分析與挖掘實戰》筆記(一):資料探勘基礎
一、資料探勘的基本任務 利用分類與預測、聚類分析、關聯規則、時序模式、偏差檢測、智慧推薦等方法,幫助企業提取資料中蘊含的商業價值,提升企業的競爭力。 二、資料探勘建模過程 定義挖掘目標:任務目標和完
Python資料分析與挖掘實戰—挖掘建模
常用的分類與預測演算法 1迴歸模型分類 1線性迴歸---自變數因變數線性關係,最小二乘法求解 2非線性迴歸--自變數因變數非線性關係,函式變換為線性關係,或非線性最小二乘方法求解 3logistic迴
Python資料分析與挖掘實戰(Pandas,Matplotlib常用方法)
作業系統:Windows Python:3.5 歡迎加入學習交流QQ群:657341423 上節講到資料分析和挖掘需要的庫,其中最主要的是Pandas,Matplotlib。 Pandas:主要是對資料分析,計算和統計,如求平均值,方差等。 Matplotl
《Python資料分析與挖掘實戰》第7章——kmeans
本文是基於《Python資料分析與挖掘實戰》的實戰部分的第七章的資料——《航空公司客戶價值分析》做的分析。旨在補充原文中的細節程式碼,並給出文中涉及到的內容的完整程式碼。 1)在資料預處理部分增加了屬性規約、資料變換的程式碼2)在模型構建的部分增加了一個畫出雷達圖的函式程式碼
python資料分析與挖掘實戰 第六章 拓展思考
企業偷漏稅識別模型 1、資料探索 偷漏稅企業分佈 首先生成data import pandas as pd inputfile = r'E:\Download\百度雲\圖書配套資料、程式碼\chapter6\拓展思考\tax.xls' data =
《Python資料分析與挖掘實戰》第13章——迴歸+DNN
本文是基於《Python資料分析與挖掘實戰》的實戰部分的第13章的資料——《財政收入影響因素分析及預測模型》做的分析。旨在補充原文中的細節程式碼,並給出文中涉及到的內容的完整程式碼。在作者所給程式碼的基礎上增加的內容包括: 1)探索了灰色預測的原理 2)畫出預測結果圖3)由於
《Python資料分析與挖掘實戰》第15章——文字挖掘
本文是基於《Python資料分析與挖掘實戰》的實戰部分的第15章的資料——《電商產品評論資料情感分析》做的分析。旨在回顧對評論文字資料的處理和建模方法。1 挖掘背景與目標 對京東平臺上的熱水器評論進行文字挖掘分析,挖掘建模如下:1)分析某一個品牌熱水器的使用者情感傾向2
『Python資料分析與挖掘實戰』第五章:挖掘建模
# coding:utf-8 """ logistic 迴歸, 自動建模 """ import pandas as pd # 引數初始化 filename = r"C:\learning\DataMining\Book\Python_DataMining\Data\cha
Python資料分析與挖掘實戰學習筆記(一)
資料預處理1. 資料清洗(1)缺失值處理三種方法:刪除記錄、資料插補、不處理常見插補方法:均值/中位數/眾數插補、使用固定值/期望值、迴歸方法(根據已有資料和其他與其有關變數等建立擬合模型來預測)、插值法(利用已知點建立合適的插值函式,如拉格朗日函式)我們以餐廳銷量資
給出《Python資料分析與挖掘實戰大資料技術叢書》Aprior演算法另一種寫法
背景 關聯規則應用,一般是為了尋求:已知某些項在一定概率下推匯出另一項,這樣的組合。 當然在資料量比較小的時候,這樣的問題可以窮盡的,但是在資料量比較大時,搜尋將成為瓶頸。 Aprior演算法提出頻繁項
python資料分析與挖掘實戰 第九章 拓展練習
這一章的拓展練習感覺是比較簡單的。基本上沒有太多讓人糾結的地方。沒有特徵提取和資料規約,讓事情簡單了不少。當然不包括寫出C4.5的決策樹,我也沒有那麼寫。 讀取資料,劃分訓練集和測試集,不用多說。
python資料分析與挖掘實戰 第七章 拓展思考
流失客戶分類模型 1 資料預處理 如果動手做過的人可能面臨的第一個問題就是,這資料讀進pandas怎麼弄編碼結果都是錯的。如果你存在這樣的問題,那麼我建議你使用NotePad++載入檔案以後,改成無BOM的UTF-8編碼,然後就可以正常讀取了。 資料預處理部
《Python資料分析與挖掘實戰》筆記(五):資料建模
分類與預測 主要分類與預測演算法 迴歸分析 確定預測值與其他變數關係。線性、非線性、Logistic、嶺迴歸、主成分迴歸等 決策樹 自頂向下分類 人工神經網路 用神經網路表示輸入與輸出之間的關係 貝葉斯網路 又稱信度網路,是不確定知識表達和推理領域最有效的理論模