標籤:

Data Analysis

Data Analysis

一維數據分析

Coding:

#numpy一維數據分析import numpy as npArray_1=np.array([2,3,4,5])#創建一維numpy數組Data_2=Array_1[1]#將索引為2的數據存入Data_2Data_Slice=Array_1[1:3]#切片查詢Data_type=Array_1.dtype#數據類型Data_Avg=Array_1.mean()#一維數組的平均值Data_Std=Array_1.std()#一維數組的標準差Data_Vector=Array_1*4#一維數組的向量化運算##pandas一維數據分析import pandas as pdtitle=[騰訊,阿里巴巴,蘋果,谷歌,Facebook,亞馬遜,]data=[54.74,190.9,173.14,1050.3,181.86,1139.4]Stocks=pd.Series(data,index=title)#創建一維pandas數組Stastic_info=Stocks.describe()#一維數據的統計信息Stocks_1=Stocks.iloc[0]#將索引為0的數據存入Stocks_1Series_1=pd.Series([1,2,3,4],index=[a,b,c,d])Series_2=pd.Series([10,20,30,40],index=[a,b,e,f])Series_3=Series_1+Series_2#一維數組的向量化運算Series_4=Series_3.dropna()#一維數組的缺失值處理:刪除Series_5=Series_3.fillna(value=0)#一維數組的缺失值處理:替換print(Create a 1d numpy array:
,Array_1)print(Query data which index is 1:
,Data_2)print(Slice query which position is between 1 and 3:
,Data_Slice)print("Array_1s data type is:
",Data_type)print(The average of Array_1 is :
,Data_Avg)print(The Standard Deviation of Array_1 is :
,Data_Std)print("Array_1s Vectorization Operation is :
",Data_Vector)print(Create a 1d pandas array:
,Stocks)print(The stastic infomation of Stocks is:
,Stastic_info)print(Query data which index is 0:
,Stocks_1)print(Vectorization Operation between Series_1 and Series_3 is:
,Series_3)print(Delete the Missing Data of Series_3:
,Series_4)print(Change the Missing Data of Series_3:
,Series_5)

Run:

Create a 1d numpy array:

[2 3 4 5]

Query data which index is 1:

3

Slice query which position is between 1 and 3:

[3 4]

Array_1s data type is:

int32

The average of Array_1 is :

3.5

The Standard Deviation of Array_1 is :

1.11803398875

Array_1s Vectorization Operation is :

[ 8 12 16 20]

Create a 1d pandas array:

騰訊 54.74

阿里巴巴 190.90

蘋果 173.14

谷歌 1050.30

Facebook 181.86

亞馬遜 1139.40

dtype: float64

The stastic infomation of Stocks is:

count 6.000000

mean 465.056667

std 491.159043

min 54.740000

25% 175.320000

50% 186.380000

75% 835.450000

max 1139.400000

dtype: float64

Query data which index is 0:

54.74

Vectorization Operation between Series_1 and Series_3 is:

a 11.0

b 22.0

c NaN

d NaN

e NaN

f NaN

dtype: float64

Delete the Missing Data of Series_3:

a 11.0

b 22.0

dtype: float64

Change the Missing Data of Series_3:

a 11.0

b 22.0

c 0.0

d 0.0

e 0.0

f 0.0

dtype: float64

二維數據分析

Coding:

#numpy二維數據分析

import numpy as npMatrix_1=np.arange(1,13,1).reshape(3,4)#創建2維numpy數組Data_1=Matrix_1[0,2]#將坐標為(0,2)的數據存入Data_1Row_1=Matrix_1[0,:]#查詢Matrix_1的第一行數據Column_1=Matrix_1[:,0]#查詢Matrix_1的第一列數據Total_Avg=Matrix_1.mean()#Matrix_1整體的平均數Column_Avg=Matrix_1.mean(axis=1)#Matrix_1第一列的平均數print("The Matrix_1 is :
",Matrix_1)print(The Data_1 is :
,Data_1)print(The data which is in first row:
,Row_1)print(The data which is in column one:
,Column_1)print(The average of Matirx_1 is :
,Total_Avg)print(The average of Matirx_1 by columns are:
,Column_Avg)#pandas二維數據分析import pandas as pdfrom collections import OrderedDictSales_Dict={ 購葯時間:[2018-01-01 星期五,2018-01-02 星期六,2018-01-06 星期三], 社保卡號:[001616528,001616528,0012602828], 商品編碼:[236701,236701,236701], 商品名稱:[強力VC銀翹片,清熱解毒口服液,感康], 銷售數量:[6,1,2], 應收金額:[82.8,28,16.8], 實收金額:[69,24.64,15]}Sales_Order_Dict=OrderedDict(Sales_Dict)Sales_Df=pd.DataFrame(Sales_Order_Dict)#創建pandas數據框Sales_Avg=Sales_Df.mean()#自動對數值型數據列進行平均值計算Data_2=Sales_Df.iloc[0,1]#將坐標為(0,1)的數據存入Data_2Row_2=Sales_Df.iloc[1,:]#查詢二維pandas數組第二行數據,或Sales_Df.loc[1,:]Label_1=Sales_Df.loc[0,商品編碼]#查詢第一行的商品編碼Column_Commodity_Code=Sales_Df.loc[:,商品編碼]#查詢商品編碼一列數據Data_List=Sales_Df[[商品名稱,銷售數量]]#通過列表查詢商品名稱和銷售數量這兩列數據Data_Slice=Sales_Df.loc[:,購葯時間:銷售數量]#通過切片查詢購葯時間到銷售數量之間所有列的數據Sales_Bool=Sales_Df[Sales_Df[銷售數量]>1]Sales_Df_Description=Sales_Df.describe()print(The Sales_Df is:
,Sales_Df)print(The average of Sales_Df is :
,Sales_Avg)print(The Data_2 is :
,Data_2)print(The data which is in second row :
,Row_2)print(The commodity code in fist row is:
,Label_1)print(Query the column which name is commodity code:
,Column_Commodity_Code)print(The Data_List are:
,Data_List)print(The Data_Slice are:
,Data_Slice)print(The Sales_Bool are:
,Sales_Bool)print(The Sales_Df_Description is:
,Sales_Df_Description)#導入數據path=C:/Users/ASUS/Desktop/numpy_test/朝陽醫院2018年銷售數據.xlsxData=pd.read_excel(path)#導入excel數據Data_View=Data.head(7)#Data前7行數據Data_Shape=Data.shape#Data的形狀print(The Data is :
,Data)print(The first 7 lines are:
,Data_View)print(The shape of Data is:
,Data_Shape)

Run:

The Matrix_1 is :

[[ 1 2 3 4]

[ 5 6 7 8]

[ 9 10 11 12]]

The Data_1 is :

3

The data which is in first row:

[1 2 3 4]

The data which is in column one:

[1 5 9]

The average of Matirx_1 is :

6.5

The average of Matirx_1 by columns are:

[ 2.5 6.5 10.5]

The Sales_Df is:

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額

0 2018-01-01 星期五 001616528 236701 強力VC銀翹片 6 82.8 69.00

1 2018-01-02 星期六 001616528 236701 清熱解毒口服液 1 28.0 24.64

2 2018-01-06 星期三 0012602828 236701 感康 2 16.8 15.00

The average of Sales_Df is :

商品編碼 236701.000000

銷售數量 3.000000

應收金額 42.533333

實收金額 36.213333

dtype: float64

The Data_2 is :

001616528

The data which is in second row :

購葯時間 2018-01-02 星期六

社保卡號 001616528

商品編碼 236701

商品名稱 清熱解毒口服液

銷售數量 1

應收金額 28

實收金額 24.64

Name: 1, dtype: object

The commodity code in fist row is:

236701

Query the column which name is commodity code:

0 236701

1 236701

2 236701

Name: 商品編碼, dtype: int64

The Data_List are:

商品名稱 銷售數量

0 強力VC銀翹片 6

1 清熱解毒口服液 1

2 感康 2

The Data_Slice are:

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量

0 2018-01-01 星期五 001616528 236701 強力VC銀翹片 6

1 2018-01-02 星期六 001616528 236701 清熱解毒口服液 1

2 2018-01-06 星期三 0012602828 236701 感康 2

The Sales_Bool are:

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額

0 2018-01-01 星期五 001616528 236701 強力VC銀翹片 6 82.8 69.0

2 2018-01-06 星期三 0012602828 236701 感康 2 16.8 15.0

The Sales_Df_Description is:

商品編碼 銷售數量 應收金額 實收金額

count 3.0 3.000000 3.000000 3.000000

mean 236701.0 3.000000 42.533333 36.213333

std 0.0 2.645751 35.318739 28.800287

min 236701.0 1.000000 16.800000 15.000000

25% 236701.0 1.500000 22.400000 19.820000

50% 236701.0 2.000000 28.000000 24.640000

75% 236701.0 4.000000 55.400000 46.820000

max 236701.0 6.000000 82.800000 69.000000

The Data is :

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額

0 2018-01-01 星期五 1.616528e+06 236701.0 強力VC銀翹片 6.0 82.8 69.00

1 2018-01-02 星期六 1.616528e+06 236701.0 清熱解毒口服液 1.0 28.0 24.64

2 2018-01-06 星期三 1.260283e+07 236701.0 感康 2.0 16.8 15.00

3 2018-01-11 星期一 1.007034e+10 236701.0 三九感冒靈 1.0 28.0 28.00

4 2018-01-15 星期五 1.015543e+08 236701.0 三九感冒靈 8.0 224.0 208.00

5 2018-01-20 星期三 1.338953e+07 236701.0 三九感冒靈 1.0 28.0 28.00

6 2018-01-31 星期日 1.014649e+08 236701.0 三九感冒靈 2.0 56.0 56.00

7 2018-02-17 星期三 1.117733e+07 236701.0 三九感冒靈 5.0 149.0 131.12

8 2018-02-22 星期一 1.006569e+10 236701.0 三九感冒靈 1.0 29.8 26.22

9 2018-02-24 星期三 1.338953e+07 236701.0 三九感冒靈 4.0 119.2 104.89

10 2018-03-05 星期六 1.002639e+10 236701.0 三九感冒靈 2.0 59.6 59.60

11 2018-03-05 星期六 1.022850e+08 236701.0 三九感冒靈 3.0 84.0 84.00

12 2018-03-05 星期六 1.007740e+10 236701.0 清熱解毒口服液 1.0 28.0 24.64

13 2018-03-07 星期一 1.007740e+10 236701.0 清熱解毒口服液 5.0 140.0 112.00

14 2018-03-09 星期三 1.007984e+10 236701.0 清熱解毒口服液 6.0 168.0 140.00

15 2018-03-15 星期二 1.003133e+10 236701.0 清熱解毒口服液 2.0 56.0 49.28

16 2018-03-15 星期二 1.007034e+08 236701.0 清熱解毒口服液 2.0 56.0 49.28

17 2018-03-15 星期二 1.071233e+07 236701.0 清熱解毒口服液 5.0 140.0 112.00

18 2018-03-20 星期日 1.166883e+07 236701.0 清熱解毒口服液 6.0 168.0 140.00

19 2018-03-22 星期二 1.006635e+10 236701.0 清熱解毒口服液 1.0 28.0 28.00

20 2018-03-23 星期三 1.021333e+08 236701.0 清熱解毒口服液 6.0 168.0 140.00

21 2018-03-24 星期四 1.007887e+10 236701.0 清熱解毒口服液 6.0 168.0 140.00

22 2018-03-24 星期四 1.019246e+08 236701.0 清熱解毒口服液 1.0 28.0 28.00

23 2018-03-28 星期一 1.007523e+10 236701.0 清熱解毒口服液 6.0 168.0 140.00

24 2018-03-29 星期二 1.318943e+07 236701.0 清熱解毒口服液 1.0 28.0 28.00

25 2018-04-05 星期二 1.007985e+10 236701.0 清熱解毒口服液 2.0 56.0 49.28

26 2018-04-07 星期四 1.165263e+07 236701.0 清熱解毒口服液 6.0 168.0 140.00

27 2018-04-13 星期三 1.100513e+07 236701.0 清熱解毒口服液 2.0 56.0 56.00

28 2018-04-22 星期五 1.034463e+07 236701.0 清熱解毒口服液 6.0 168.0 140.00

29 2018-05-01 星期日 1.007031e+10 236701.0 清熱解毒口服液 6.0 168.0 140.00

... ... ... ... ... ... ... ...

6548 2018-04-10 星期日 1.001568e+10 2367011.0 開博通 1.0 28.0 25.00

6549 2018-04-10 星期日 1.003980e+10 2367011.0 開博通 2.0 56.0 50.00

6550 2018-04-10 星期日 1.343763e+07 2367011.0 開博通 1.0 28.0 25.00

6551 2018-04-12 星期二 1.616528e+06 2367011.0 開博通 1.0 28.0 28.00

6552 2018-04-13 星期三 1.014095e+08 2367011.0 開博通 2.0 56.0 50.00

6553 2018-04-13 星期三 1.340663e+07 2367011.0 開博通 2.0 56.0 50.00

6554 2018-04-14 星期四 1.003929e+10 2367011.0 開博通 2.0 56.0 50.00

6555 2018-04-15 星期五 1.006668e+09 2367011.0 開博通 2.0 56.0 50.00

6556 2018-04-15 星期五 1.001877e+10 2367011.0 開博通 2.0 56.0 49.28

6557 2018-04-15 星期五 1.002816e+10 2367011.0 心痛定 2.0 89.6 79.60

6558 2018-04-15 星期五 1.008373e+10 2367011.0 高特靈 2.0 11.2 9.86

6559 2018-04-16 星期六 1.003554e+10 2367011.0 高特靈 2.0 11.2 9.86

6560 2018-04-17 星期日 1.117733e+07 2367011.0 高特靈 2.0 11.2 9.86

6561 2018-04-18 星期一 1.001877e+10 2367011.0 高特靈 1.0 5.6 4.93

6562 2018-04-21 星期四 1.113763e+07 2367011.0 高特靈 2.0 11.2 10.00

6563 2018-04-22 星期五 1.001877e+10 2367011.0 高特靈 1.0 5.6 5.00

6564 2018-04-24 星期日 1.007329e+10 2367011.0 高特靈 1.0 5.6 5.60

6565 2018-04-25 星期一 1.001917e+10 2367011.0 高特靈 1.0 5.6 5.00

6566 2018-04-25 星期一 1.001919e+10 2367011.0 高特靈 3.0 16.8 15.46

6567 2018-04-25 星期一 1.003935e+10 2367011.0 高特靈 2.0 11.2 9.86

6568 2018-04-26 星期二 1.005256e+10 2367011.0 高特靈 2.0 11.2 10.00

6569 2018-04-26 星期二 1.089458e+08 2367011.0 高特靈 2.0 11.2 10.00

6570 NaN 1.177863e+07 2367011.0 高特靈 10.0 56.0 56.00

6571 2018-04-25 星期二 NaN 2367011.0 高特靈 2.0 11.2 9.86

6572 2018-04-27 星期三 1.006048e+10 2367011.0 高特靈 1.0 5.6 5.00

6573 2018-04-27 星期三 1.078861e+08 2367011.0 高特靈 10.0 56.0 54.80

6574 NaN NaN NaN NaN NaN NaN NaN

6575 2018-04-27 星期三 1.008787e+10 2367011.0 高特靈 2.0 11.2 9.86

6576 2018-04-27 星期三 1.340663e+07 2367011.0 高特靈 1.0 5.6 5.00

6577 2018-04-28 星期四 1.192693e+07 2367011.0 高特靈 2.0 11.2 10.00

[6578 rows x 7 columns]

The first 7 lines are:

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額

0 2018-01-01 星期五 1.616528e+06 236701.0 強力VC銀翹片 6.0 82.8 69.00

1 2018-01-02 星期六 1.616528e+06 236701.0 清熱解毒口服液 1.0 28.0 24.64

2 2018-01-06 星期三 1.260283e+07 236701.0 感康 2.0 16.8 15.00

3 2018-01-11 星期一 1.007034e+10 236701.0 三九感冒靈 1.0 28.0 28.00

4 2018-01-15 星期五 1.015543e+08 236701.0 三九感冒靈 8.0 224.0 208.00

5 2018-01-20 星期三 1.338953e+07 236701.0 三九感冒靈 1.0 28.0 28.00

6 2018-01-31 星期日 1.014649e+08 236701.0 三九感冒靈 2.0 56.0 56.00

The shape of Data is:

(6578, 7)

藥店銷售數據分析:月均消費次數、月均消費金額、客單價

Coding:

# 1.提出問題:import pandas as pd#2.理解數據:採集數據、導入數據、理解數據path=C:/Users/ASUS/Desktop/numpy_test/朝陽醫院2018年銷售數據.xlsxSales_Df=pd.read_excel(path,dtype=object)#導入數據,確保數據準確print(Sales_Df.head())#查看數據信息以便理解數據#購葯時間可計算一共有幾個月,社保卡號可計算有多少顧客,實收金額可計算總消費金額print(Sales_Df.shape)#查看數據形狀#3.數據清洗:選擇子集、列名重命名、缺失值處理、數據類型轉換、數據排序、異常值處理#1)選擇子集Target_Df=Sales_Df[[購葯時間,社保卡號,銷售數量,實收金額]]print(Target_Df.head())#2)列名重命名Change_Name={購葯時間:銷售時間}Target_Df.rename(columns=Change_Name,inplace=True)print(Target_Df.head())#3)缺失值處理:python內置的None,pandas中的NA,浮點值NaNTarget_Df=Target_Df.dropna(subset=[銷售時間,社保卡號],how=any)print(Target_Df.shape)#4)數據類型轉換Target_Df[社保卡號]=Target_Df[社保卡號].astype(float)Target_Df[銷售數量]=Target_Df[銷售數量].astype(float)Target_Df[實收金額]=Target_Df[實收金額].astype(float)print(Target_Df.dtypes)def Split_Sales_Time(Time_Origin_Series): Time_List=[] for value in Time_Origin_Series: Date_Str=value.split( )[0] Time_List.append(Date_Str) Time_Save_Series=pd.Series(Time_List) return Time_Save_SeriesTarget_Df[銷售時間]=Split_Sales_Time(Target_Df[銷售時間])Target_Df=Target_Df.dropna(subset=[銷售時間],how=any)Target_Df[銷售時間]=pd.to_datetime(Target_Df[銷售時間],format=%Y-%m-%d,errors=coerce)print(Target_Df.head())print(Target_Df.shape)#5).數據排序Target_Df=Target_Df.sort_values(by=銷售時間,ascending=True)print(Target_Df.head())Target_Df=Target_Df.reset_index(drop=True)print(Target_Df.head())#6).異常值處理print(Target_Df.describe())print(Target_Df.shape)Target_Df=Target_Df[Target_Df[銷售數量]>0]print(Target_Df.shape)#4.構建模型(計算指標)#1)月均消費次數=總消費次數/月數,(ps:同一天同一人算一次,需去重)Total_Consumption=Target_Df.drop_duplicates(subset=[銷售時間,社保卡號]).shape[0]Months=(Target_Df.loc[Total_Consumption-1,銷售時間]-Target_Df.loc[0,銷售時間]).days//30Months_Avg_Consumption=float(Total_Consumption)/float(Months)print(Months_Avg_Consumption)#2)月均消費金額=總消費金額/月數Months_Avg_Consumption_Account=Target_Df[實收金額].sum()/Monthsprint(Months_Avg_Consumption_Account)#3)客單價=總消費金額/總消費次數PCT=Target_Df[實收金額].sum()/Total_Consumptionprint(PCT)

Run:

購葯時間 社保卡號 商品編碼 商品名稱 銷售數量 應收金額 實收金額

0 2018-01-01 星期五 001616528 236701 強力VC銀翹片 6 82.8 69

1 2018-01-02 星期六 001616528 236701 清熱解毒口服液 1 28 24.64

2 2018-01-06 星期三 0012602828 236701 感康 2 16.8 15

3 2018-01-11 星期一 0010070343428 236701 三九感冒靈 1 28 28

4 2018-01-15 星期五 00101554328 236701 三九感冒靈 8 224 208

(6578, 7)

購葯時間 社保卡號 銷售數量 實收金額

0 2018-01-01 星期五 001616528 6 69

1 2018-01-02 星期六 001616528 1 24.64

2 2018-01-06 星期三 0012602828 2 15

3 2018-01-11 星期一 0010070343428 1 28

4 2018-01-15 星期五 00101554328 8 208

銷售時間 社保卡號 銷售數量 實收金額

0 2018-01-01 星期五 001616528 6 69

1 2018-01-02 星期六 001616528 1 24.64

2 2018-01-06 星期三 0012602828 2 15

3 2018-01-11 星期一 0010070343428 1 28

4 2018-01-15 星期五 00101554328 8 208

(6575, 4)

銷售時間 object

社保卡號 float64

銷售數量 float64

實收金額 float64

dtype: object

銷售時間 社保卡號 銷售數量 實收金額

0 2018-01-01 1.616528e+06 6.0 69.00

1 2018-01-02 1.616528e+06 1.0 24.64

2 2018-01-06 1.260283e+07 2.0 15.00

3 2018-01-11 1.007034e+10 1.0 28.00

4 2018-01-15 1.015543e+08 8.0 208.00

(6572, 4)

銷售時間 社保卡號 銷售數量 實收金額

0 2018-01-01 1.616528e+06 6.0 69.0

3436 2018-01-01 1.061673e+07 2.0 3.0

1190 2018-01-01 1.007397e+10 5.0 145.0

3859 2018-01-01 1.007397e+10 6.0 92.5

3888 2018-01-01 1.001429e+10 1.0 23.0

銷售時間 社保卡號 銷售數量 實收金額

0 2018-01-01 1.616528e+06 6.0 69.0

1 2018-01-01 1.061673e+07 2.0 3.0

2 2018-01-01 1.007397e+10 5.0 145.0

3 2018-01-01 1.007397e+10 6.0 92.5

4 2018-01-01 1.001429e+10 1.0 23.0

社保卡號 銷售數量 實收金額

count 6.572000e+03 6572.000000 6572.000000

mean 6.093421e+09 2.385423 46.338944

std 4.888798e+09 2.374173 81.002074

min 1.616528e+06 -10.000000 -374.000000

25% 1.014234e+08 1.000000 12.320000

50% 1.001650e+10 2.000000 26.600000

75% 1.004882e+10 2.000000 53.000000

max 1.283612e+10 50.000000 2650.000000

(6572, 4)

(6529, 4)

1072.0

61086.66199999957

56.98382649253691

推薦閱讀:

最優拍賣機制的數學原理
【轉載】世界第一數學強校的背後
復幾何的故事(1)複數的史前史
無窮大的數學(二):0.9循環 < 1?——超實數
科普小說《遇見喜歡數學的女孩》三部曲下載地址

TAG:科技 | 數學 |