获取inout框中未改变值的数据_数据分析10——数据分析的基本过程(02)
解決常見問題:
數據分析過程分為以下步驟:
(1)提出問題:數據分析首先要有個明確的問題。是所有數據分析開始的第一步。
(2)理解數據:采集數據(根據定義的問題來采集數據)、導入數據(excel、sql)譬如,讀取excel到python二維框中、了解數據
(3)對數據進行清洗(對數據進行預處理)
(4)構建模型(對清洗后的數據進行數據分析,得出業務指標,復雜的要用機器模型的訓練)
(5)數據可視化(與他人交流你的展示結果)
例:朝陽醫院 銷售數據
希望知道如下幾個指標:月均消費次數、月均消費金額、客單價、消費趨勢。首先自己必須搞清楚各個指標代表什么。和業務部門討論清楚。
打印出前幾行,以保證數據正確讀取了,也了解有哪些列以及他們的特點。
用descript方法來看數據的基本信息。
2. 數據清洗步驟
(1)選擇子集;使用切片的冒號,使用loc屬性可以獲取指定范圍
好多列,那么有時候我們只需要幾列;
(2)列名重命名;首先建立一個舊新列名的對應關系,然后用rename方法來重命名,參數inplace,true:表示會改變數據框本身,false:會復制一個新的數據框出來,改變他的列名。
如果列名不方便數據分析,那么我們要對列名進行重命名
(3)缺失數據處理;記錄缺失錯誤,直接刪除缺失數據,如果缺失值太多,那么我們可以通過建立模型的方式來補充這些數據。不能有缺失值的列,可以用dropna來刪除空數據,參數subset用于存放刪除指定列的列表,第二個參數how,用于指定如何刪除數據,how="any"表示任何一列有缺失值,都直接刪除。可以看前后數據,saleDf.shape,行數差了多少。
(4)數據類型轉換,字符串類型轉換為數字類型。.astype('float');,例如日期只需要日期,不需要星期幾,那么用.split分割字符串就可以。定義函數,可以將一列數據的每行數據都處理。字符串轉換為日期類型,pd.to_datetime(列,格式,errors='coerce');如果不符合格式,會被轉化為空值。因為日期不合理,會被置空,所以要執行一遍缺失處理數據。
(5)數據排序;按指定列名排序,默認排序算法快排序。by=列名,ascending=true:降序;false:生序。重命名行號,df.reset_index()
(6)異常值處理,有些數據超出了范圍;用df.describe()來獲取整體數據。使用條件判斷,篩選出 銷售數量>0的數據。
3. 分析數據
1??月均消費次數 = 總消費次數 / 月份數。
同一天內、同一個人,發生的所有消費算作一次消費。但發生在同一天的,雖然有兩次消費,但也算1次數據。
所以要根據日期和社保卡號來去重。只保留一條。
kpi1_df=df.drop_duplicates(subset=['銷售時間','社保卡號']); // 刪除重復數據
totalI = kpi1_df.shape[0]; // 有多少行,即總消費次數
(1)排序,df.sort_values(by='消費時間',ascending=true) // 按銷售時間生序排序
kpi1df = kpi1df.reset_index(drop=true) // 重命名行名 index
(2)獲取時間范圍:第一行是最小時間,第二行是最大時間
(3)計算月份數,(結束時間-開始時間).days得出天數。 /30得出一共幾個月。
總消費次數/月份數=月均消費次數。
2??月均消費金額 = 總消費金額/月份數
totalMoneyF = df.loc[:,'實收金額'].sum();
monthMoneyF = totalMoneyF / monthsI;
3??客單價 = 總消費金額/總消費次數
4??趨勢分析,之后再來。
距離上篇文章,已經過去9個月了。重新拾起來。
2019.2.28(12:29)
總結
以上是生活随笔為你收集整理的获取inout框中未改变值的数据_数据分析10——数据分析的基本过程(02)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 4j 设置日志保存天数_MySQL中的这
- 下一篇: exists hive中如何使用_HIV