天天看點

python分析保險銷售資料_python分析醫院銷售資料

@猴子 近日,剛學完Python資料分析課程,以下是課堂筆記。

資料來源:朝陽醫院2018年銷售資料.xlsx

(為了友善大家的練習,原始資料如下。拜托,一定要點贊哦。)

提取碼:rffc

1.提出問題

一切分析都是以解決問題為最終目标,是以,我們搜集了業務方提出的以下需求:

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

2.了解資料

1)讀取資料

#讀取Excel資料,統一先按照str讀入,之後轉換

import pandas as pd

import numpy as np

fileNameStr='E:/朝陽醫院2018年銷售資料.xlsx'

xls=pd.ExcelFile(fileNameStr,dtype='object')

salesDf=xls.parse('Sheet1',dtype='object')

2)資料資訊

列印資料前幾行

salesDf.head()

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

資料行列資訊

salesDf.shape

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

檢視列資料類型

salesDf.dtypes

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

3.資料清洗

1)選擇子集

subSalesDf=salesDf.loc[0:4,'購藥時間':'銷售數量']

subSalesDf

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

2)列名重命名

colNameDict={'購藥時間':'銷售時間'}

salesDf.rename(columns=colNameDict,inplace=True)

salesDf.head()

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

3)缺失資料處理

print('删除缺失值前大小',salesDf.shape)

salesDf=salesDf.dropna(subset=['銷售時間','社保卡号'],how='any')

print('删除缺失後大小',salesDf.shape)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

4)資料類型轉換

字元串轉換為數值(浮點數)

salesDf['銷售數量']=salesDf['銷售數量'].astype('float')

salesDf['應收金額']=salesDf['應收金額'].astype('float')

salesDf['實收金額']=salesDf['實收金額'].astype('float')

print('轉換後的資料類型:\n',salesDf.dtypes)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

處理日期-字元串分割

def splitSaletime(timeColSer):

timeList=[]

for value in timeColSer:

dateStr=value.split(' ')[0]

timeList.append(dateStr)

timeSer=pd.Series(timeList)

return timeSer

timeSer=salesDf.loc[:,'銷售時間']

dateSer=splitSaletime(timeSer)

dateSer[0:3]

salesDf.loc[:,'銷售時間']=dateSer

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

字元串轉換日期

salesDf.loc[:,'銷售時間']=pd.to_datetime(salesDf.loc[:,'銷售時間'],

format='%Y-%m-%d',

errors='coerce'

)

salesDf=salesDf.dropna(subset=['銷售時間','社保卡号'],how='any')

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

排序

salesDf=salesDf.sort_values(by='銷售時間',ascending=True)

print(salesDf)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

重命名行名

salesDf=salesDf.reset_index(drop=True)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

每一列的描述統計資訊:

salesDf.describe()

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

通過條件判斷篩選出資料

querySer=salesDf.loc[:,'銷售數量']>0

print('删除異常值前:',salesDf.shape)

salesDf=salesDf.loc[querySer,:]

print('删除異常值後:',salesDf.shape)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

4.構模組化型

業務名額1:月均消費次數

月均消費次數=總消費次數/月份數

(規定同一天内,同一個人發生的所有消費算作一次消費。)

求總消費次數:

step1:删除重複資料

step2:有多少行

kpi1_Df=salesDf.drop_duplicates(subset=['銷售時間','社保卡号'])

totalI=kpi1_Df.shape[0]

print('總消費次數=',totalI)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

求月份數:

step1:排序

step2:擷取時間範圍

step3:計算月份數

kpi1_Df=kpi1_Df.sort_values(by='銷售時間',ascending=True)

kpi1_Df=kpi1_Df.reset_index(drop=True)

startTime=kpi1_Df.loc[0,'銷售時間']

endTime=kpi1_Df.loc[totalI-1,'銷售時間']

daysI=(endTime-startTime).days

monthsI=daysI//30

print('月份數:',monthsI)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

業務名額1:月均銷售次數=

kpi1_I=totalI//monthsI

print('業務名額1:月均消費次數=',kpi1_I)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

業務名額2:月均消費金額=總消費金額/月份數

totalMoneyF=salesDf.loc[:,'實收金額'].sum()

monthMoneyF=totalMoneyF/monthsI

print('業務名額2:月均消費金額=',monthMoneyF)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

業務名額3:客單價=總消費金額/總消費次數

pct=totalMoneyF/totalI

print('客單價:',pct)

python分析保險銷售資料_python分析醫院銷售資料
python分析保險銷售資料_python分析醫院銷售資料

5.資料可視化

稍後補充。

記得點贊哦~