提出問題
理解資料
資料清洗構建模型
資料視覺化
選擇子集
列名重新命名
缺失資料處理
資料型別轉換
資料排序
異常值處理
下面是對藥店銷售資料分析的例項:
提出問題:
要從銷售資料中分析出4個指標:
1)月均消費次數 2)月均消費金額 3)客單價 4)消費趨勢
2.理解資料
讀取excel資料,確認資料是否能正常執行,檢視資料量大小。
3.資料清洗
1)選擇子集
用loc[,]切片選擇需要的行列(本例不需要選擇子集)
2)重新命名列名
salesdf.rename(columns=,inplace=true)
3)處理缺失值
刪除缺失資料後,資料由6578行變成6575行
4)轉換資料型別
salesdf['銷售數量'] = salesdf['銷售數量'].astype('float')
(i)提取所需要的資訊:年-月-日,原始資料格式為:年-月-日 星期,要把年月日部分取出。
step1:定義分割日期與星期的函式①迴圈遍歷資料框全部行,②以空格' '為分割點,取分割後資料的第一部分(日期),③將取得的日期放入列表,④迴圈結束後將列表轉化成陣列,函式返回該陣列。
step2:取銷售時間這一列,帶入上面定義的函式,此時資料型別仍然是object
(ii)轉化成日期:pandas.to_datetime()方法
pandas.to_datetime官方文件:
pandas.to_datetime - pandas 0.25.3 documentation
時間格式format:strftime官方文件:
pandas.period.strftime - pandas 0.25.3 documentation
5)資料排序
(i)排序
dataframe.sort_values
(self,
by,axis=0,
ascending=true,
inplace=false,
kind='quicksort',
na_position='last')
salesdf=salesdf.sort_values(by='銷售時間',
ascending=true,
na_position='first')
pandas.dataframe.sort_values - pandas 0.25.3 documentation
(ii)重新命名行名
salesdf=salesdf.reset_index(drop=true)
6)處理異常值
檢視描述指標是否符合實際
刪除銷售數量小於0的資料:取銷售數量大於0的那些行
4.構建模型:依次計算4個業務指標
1)月均消費次數=總消費次數/月份數
①總消費次數:同一天,同乙個人發生的所有消費算作一次消費
如果銷售時間和社群卡號這兩列的值同時相同,只保留一條,將重複資料刪掉,再計算資料總行數。
kpi1_df=salesdf.drop_duplicates(
subset=['銷售時間', '社保卡號']
)totali=kpi1_df.shape[0]
②月份數
對去掉重複值的資料框kpi1_df排序,獲取銷售時間最大值和最小值,再按照30天/月計算月份數。
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
③計算月均消費次數
2)月均消費金額
3)客單價
4)趨勢圖
①計算各月的銷售資料
gb=groupdf.groupby(groupdf.index.month)
monthdf=gb.sum()
②畫圖
import matplotlib.pyplot as plt
下面**執行會出錯
monthdf.plot(x=monthdf.index,y='銷售數量')
plt.grid(true)
plt.show()
keyerror: "none of [int64index([1, 2, 3, 4, 5, 6, 7], dtype='int64', name='銷售時間')] are in the [columns]"修改後:
monthdf.plot(y='銷售數量')
php網頁空格,如何在HTML中插入空格
一 鍵入空格 在html頁面中,我們可以通過鍵入 空格 鍵來插入空格。例 在p.p1中鍵入乙個空格,在p.p2中鍵入5個空格。注 此時是半形狀態鍵入 空格 測試文字 php中文網!測試文字 php中文網!效果圖 可以看出,無論我們在html中是鍵入1個空格或者5個空格,還是其他多個空格,web瀏覽器...
終端控制 如何在不輸入回車讀入字元
摘要 一般情況下,我們在終端輸入一些字元,輸入的同時可以編輯 增加,刪除,修改 然後輸入回車,這些字元被送到緩衝區。但是,在more程式和其他的程式中,比如遊戲中的快捷鍵,我們需要的是不用輸入回車就可以讀取字元。此時,我們就需要了解如何控制終端,使得在不輸入回車的情況下就可以讀入字元。首先,我們看一...
如何將 txt檔案讀入到陣列
格式是 intput.txt中的示例數字為 4 6 8 10 那麼問題來了,如何讀取這段數字,博主的思路是把這個讀入到陣列裡,然後乙個乙個調出來驗證猜想就好了,輸出到檔案也方便。但是,就是這樣乙個輸出到陣列,折騰了博主好久 博主很菜,勿噴。當用fgets 函式時,它每次只讀取乙個位元組,就是說,a ...