資料分析(4)

2021-08-14 16:51:33 字數 3815 閱讀 6173

資料質量分析:

主要針對缺失值、異常值、不一致的值、重複資料以及含有特殊符號

異常值的查明箱型圖統計

利用箱型圖對資料異常值進行查明

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 序數 大於或者小於 單調函式的變...

資料分析 資料分析的誤區

在資料分析的過程中,我們難免會走一些彎路,但有些彎路是可以避免的,下面我將介紹幾個資料分析過程中常見的誤區 我們一定都聽說過二戰中的乙個經典示例 軍方為了提高戰鬥機飛行員的生還率,打算在飛機上增加裝甲的厚度,但不能在所有部位加厚,這樣會喪失戰機的靈活性,於是軍方請了統計學家來研究,這些專家在一開始就...