資料質量分析:
主要針對缺失值、異常值、不一致的值、重複資料以及含有特殊符號
異常值的查明箱型圖統計
利用箱型圖對資料異常值進行查明
import os
path=os.path.abspath('.')#當前所處資料夾的絕對路徑
import pandas as pd
catering_sale = './data/catering_sale.xls' #餐飲資料
data = pd.read_excel(catering_sale)
import matplotlib.pyplot as plt #匯入影象庫
plt.rcparams['font.sans-serif'] = ['simhei'] #用來正常顯示中文標籤
plt.rcparams['axes.unicode_minus'] = false #用來正常顯示負號
plt.figure() #建立影象
p = data.boxplot(return_type='dict') #畫箱線圖,直接使用dataframe的方法,p為字典型別,其中鍵值為'fliers'的元素儲存有異常值的資訊
x=p['fliers'][0].get_xdata()#fliers為異常值的標籤,[0]為銷量的異常值
y=p['fliers'][0].get_ydata()
y.sort()#直接改變原物件的順序
#用annotate新增注釋
#其中有些相近的點,註解會出現重疊,難以看清,需要一些技巧來控制。
#以下引數都是經過除錯的,需要具體問題具體除錯。
for i in range(len(x)):
if i>0:
plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.05 -0.8/(y[i]-y[i-1]),y[i]))
else:
plt.annotate(y[i], xy = (x[i],y[i]), xytext=(x[i]+0.08,y[i]))
plt.show() #展示箱線圖
資料特徵分析:
1分布分析
1.1定量資料分析(利用頻率分布直方圖)
步驟:(1)求極差;(2)決定組距與組數;(3)決定分點;(4)列出頻率分布表;(5)繪製頻率分布直方圖
1.2定性資料分析(餅圖或條形圖)
主要是各物件的分類
2對比分析
2.1絕對數比較
絕對數比較是利用絕對數進行對比,從而尋找差異的方法
2.2相對數比較
分類:(1)結構相對數:即同一總體內部的部分數值與全部數值對比求比重,如支出額佔消費支出總額比重
(2)比例相對數:將同一總體內部不同部分的數值進行對比,如投資與消費比例
(3)比較相對數:將同一時期兩個性質相同的指數進行對比
(4)強度相對數:將性質不同但有一定聯絡的總量指標進行對比,如人口密度
(5)計畫完成程度相對數:某一時期實際完成數與計畫完成數的對比
(6)動態相對數:將同一現象在不同時期的指數數值進行對比,如發展速度
3統計量分析
3.1集中趨勢度量
均值,中位數,眾數(資料集中出現最頻繁的值)
3.2離中趨勢度量
極差(最大值-最小值),標準差(多個資料集與平均值的差的累加的和,再求平均數),
變異係數cv(標準差/平均值)
四分位數間距(上四分位數與下四分位數的差)
4週期性分析
5貢獻性分析
例子:對於乙個公司來講,80%的利潤常來自於20%最暢銷的產品,而其他80%產品則產生了20%的利潤
選單盈利帕累託圖
import pandas as pd
dish_profit='./data/catering_dish_profit.xls'
data=pd.read_excel(dish_profit,index_col=u'菜品名')
data=data[u'盈利'].copy()#這裡建立副本,是想保持原本資料的結構
data.sort_values(ascending=false)
import matplotlib.pyplot as plt #匯入影象庫
plt.rcparams['font.sans-serif'] = ['simhei'] #用來正常顯示中文標籤
plt.rcparams['axes.unicode_minus'] = false #用來正常顯示負號
plt.figure()
data.plot(kind='bar')#畫柱狀圖
plt.ylabel(u'盈利(元)')#標記y軸
p = 1.0*data.cumsum()/data.sum()#.cumsum()為累加函式
p.plot(color = 'r', secondary_y = true, style = '-o',linewidth = 2)#畫線性圖
#標註plt.annotate(format(p[6], '.4%'), xy = (6, p[6]), xytext=(6*0.9, p[6]*0.9), arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2")) #新增注釋,即85%處的標記。這裡包括了指定箭頭樣式。
plt.ylabel(u'盈利(比例)')
plt.show()
6相關性分析
6.1繪製散點圖
6.2計算相關係數
(1)pearson相關係數(用於分析兩連續變數間的關係)
(2)spearman秩相關係數(分類或等級變數間,非線性情況下使用)
餐飲資料相關性分析
import pandas as pd
catering_sale='./data/catering_sale_all.xls'#餐飲資料,含有其他屬性
data=pd.read_excel(catering_sale,index_col=u'日期') #讀取資料,指定「日期」列為索引列
data.corr()#相關係數矩陣,即給出了任意兩款菜式之間的相關係數
corr_analy=data.corr()[u'生炒菜心'] #只顯示'生炒菜心'與其他菜式的相關係數
data[u'生炒菜心'].corr(data[u'樂膳真味雞'])
print(corr_analy.sort_values(ascending=false)[:3])
統計函式:
1統計作圖函式:
在作圖前,先建立原始圖:
底圖有了以後,則通過plot(kind="作圖型別")、pie()、hist()、boxplot()等作圖,如:
plt.plot(x,y,s)....plt.hist()....plt.pie()
#繪製y對於x,s定義繪製圖形的型別
d.plot(kind=box)
#series與dataframe內建函式,沒指定kind則預設線性圖
python資料分析4
為啥要用python中的pandas庫進行資料分析,用excel不可以嗎?不可以,excel處理上萬條資料時通常會宕機或者出錯,python不會有這種問題。相信鯉魚學長,在學習乃至日後工作中,pandas庫將會風靡相當長一段時間。在資料處理中我們經常用到視覺化,視覺化可以直觀地識別資料中的趨勢。我們...
資料分析 資料分析概述
了解業務 了解資料 確認業務和資料 預期分析和管理 資料分析方式01.了解資料資料 1.測量標度型別 屬性本源並不是數字或者符號,通過測量標度將數值或者符號和物件的屬性建立關聯。屬性的型別 測量尺度 nominal 標稱 等於或者不等於 一對一的變換 ordinal 序數 大於或者小於 單調函式的變...
資料分析 資料分析的誤區
在資料分析的過程中,我們難免會走一些彎路,但有些彎路是可以避免的,下面我將介紹幾個資料分析過程中常見的誤區 我們一定都聽說過二戰中的乙個經典示例 軍方為了提高戰鬥機飛行員的生還率,打算在飛機上增加裝甲的厚度,但不能在所有部位加厚,這樣會喪失戰機的靈活性,於是軍方請了統計學家來研究,這些專家在一開始就...