資料分析初階 各變數初步探索(1)

2021-10-05 22:18:49 字數 3770 閱讀 9452

本分析資料集採用kaggle的e-commerce data。

資料分析思路:kaggle-customer segmentation

資料匯入詳見:資料分析初階——資料匯入

資料初步處理詳見:資料分析初階——資料初步處理

在進行資料分析前,需要先對各個欄位做簡單的了解。

invoiceno訂單號。如果在單號前有加c,意思是這個訂單是乙個取消訂單。

stockcode:商品**。如果是同一商品則是唯一的。

description:商品描述。

quantity:訂單商品數量。

invoicedate:訂單日期。

unitprice:商品單位**。

customerid:客戶id。

country:客戶所在國家。

select country,count(*) from ecom.data

group by country

對country計數,結果如下:

表1 訂單國籍分布計數(部分)

country

united kingdom

germany

france

eire

spain

netherlands

belgium

switzerland

...count

361878

9495

8491

7485

2533

2371

2069

1877

...percentage

88.95%

2.33%

2.09%

1.84%

0.62%

0.58%

0.51%

0.46%

...由上可知,英國的訂單佔比最高,其次是德國。

根據欄位的描述,我們可以通過計數來計算產品、顧客和總訂單數。

select

count(distinct stockcode) as products ,

count(distinct invoiceno) as transactions ,

count(distinct customerid) as customers

from ecom.data

products

transactions

customers

count

3684

22190

4372

由上可知,本資料集包括產品3684項,顧客4372名,一共22190個訂單。

接下來我們以顧客和訂單號進行分組並排序。

select

customerid,

invoiceno,

count(invoicedate) as 'number of products'

from ecom.data

group by customerid , invoiceno

order by customerid

我們能得出以下結果。

customerid

invoiceno

number of products

12346

541431

112346

c541433

112347

537626

3112347

542237

2912347

549222

24...

......

從上面我們能看出:

(1)有顧客是只買一次商品的;

(2)其他顧客一般都買超過10次的商品。

1.2.1 關於取消的訂單

我們先計算出取消訂單的基本情況。

select

customerid,

invoiceno,

count(invoicedate) as 'number of products' ,

case when invoiceno like 'c%'

then count(invoicedate)

else 0

end as 'cancel number of products'

from ecom.data

group by customerid , invoiceno

order by customerid

結果如下:

customerid

invoiceno

number of products

cancel number of products

12346

54143110

12346

c54143311

12347

537626310

12347

542237290

12347

549222240

12352

c54738877

......

......

然後我們對其進行彙總計算:

select 

count(cnop >= 1 or null) as 'count cancel number of invoice',

count(nop) as 'count number of invoice',

(count(cnop >= 1 or null)/count(nop))*100 as percentage

from(

select

customerid,

invoiceno,

count(invoicedate) as 'nop' ,

case when invoiceno like 'c%'

then count(invoicedate)

else 0

end as 'cnop'

from ecom.data

group by customerid , invoiceno

order by customerid) t

可得:

count number of invoice

count cancel number of invoice

percentage

3654

22190

16.4669

由此可知,大約有16.5%的訂單是被取消掉的。

如果要使用有條件的count函式,我們一般採取以下三種方法:(原理詳見:mysql中使用count加條件統計 ——alberts)

select count(字段 條件 or null) from **;
select

count(if(字段 條件, 1, null))

from **;

select

count(case when 字段 條件

then 1

end)

from **

資料分析 資料探索 EDA

eda的定義 對已有的資料 特別是調查或觀察得來的原始資料 在盡量少的先驗假定下進行探索,通過作圖 製表 方程擬合 計算特徵量等手段探索資料的結構和規律的一種資料分析方法,它集中於檢查模型擬合和假設檢驗所需的假設,以及處理缺少的值,並根據需要進行變數轉換。資料屬性分布分析 概率密度分析 資料分布 資...

Python資料分析專題 資料探索分析

資料探索 2.統計分析 抽樣2.2 點估計與置信區間 2.3 概率分布 2.4 檢驗 2.5 卡方檢驗 2.6 anova 2.7 ab測試 2.8 態分布 按資料型別選分析方式 3.估計 se.mean axis 1 求行的均值 se.median plt.vlines se.mean ymin ...

1 資料分析

資料分析 1.資料分析定義 2.資料分析的作用 3.資料分析的基本步驟 3.1明確分析目的和思路 3.2資料收集 3.3資料處理 3.4資料分析 過程中的重點,必須確保正確 3.5資料展現 3.6報告撰寫 4.資料分析行業前景 4.1蓬勃發展的趨勢 4.2資料分析師職業要求 5.隨著科技發展帶來的挑...