Python數據分析:根據大衆點評數據挑選店鋪地址

前言

本文的文字及圖片來源於網絡,僅供學習、交流使用,不具有任何商業用途,版權歸原作者所有,如有問題請及時聯繫我們以作處理。

作者:Python圈子

PS:如有需要Python學習資料的小夥伴可以加點擊下方鏈接自行獲取http://t.cn/A6Zvjdun

項目背景

  • 案例類型:練習
  • 案例工具:Python、Qgis
  • 案例目的:通過實戰進行學習,讓大家綜合運用基礎知識,加深印象鞏固記憶。

提出問題

1、通過餐飲數據分析選出最具有競爭力的品類;
2、通過建立綜合分數指標的計算公式來挑選出最適合地址。

理解數據

讀取數據集後,通過info()和describe()方法來查看一下數據的基本情況。

data.info()
——————————————————————————
<class 'pandas.core.frame.DataFrame'>
RangeIndex: 96398 entries, 0 to 96397
Data columns (total 10 columns):
類別      96258 non-null object
行政區     96255 non-null object
點評數     96398 non-null int64
口味      96398 non-null float64
環境      96398 non-null float64
服務      96398 non-null float64
人均消費    96398 non-null int64
城市      96398 non-null object
Lng     96398 non-null float64
Lat     96398 non-null float64
dtypes: float64(5), int64(2), object(3)
memory usage: 7.4+ MB

數據共計96398個,10個變量/特徵,數據類型數量爲 float64(5), int64(2), object(3),粗略觀察,數據明顯有缺失值的情況,需要進行數據的清洗。

數據處理

使用data.isnull().values.sum()檢查空值數量,檢查出283個空值。

由於空值佔數據總量比例爲283/96398 = 0.0029,刪除空值並不影響整體的數據情況,所以這裏採用刪除的辦法來處理空值。

使用data.dropna()對空值進行刪除,再使用data.isnull().values.sum()進行檢查,結果爲0。

數據清洗後的數據共計96255個。根據①通過餐飲數據分析選出最具有競爭力的品類的要求,選擇相關的變量,選擇[‘類別’, ‘口味’, ‘環境’, ‘服務’, '人均消費’]5個變量。

建立[‘類別’, ‘口味’, ‘環境’, ‘服務’, '人均消費’]的DataFrame,並且篩選出所有評分和消費大於0的情況。因爲根據實際情況,評分和消費爲0的數據對此沒有參考作用。
在這裏插入圖片描述
引入’性價比’這一列,性價比的計算方式將所有的評分相加再除以人均消費金額,計算出 分/元 爲單位的數值,表示單位價格獲得的分數 來表示其性價比。
在這裏插入圖片描述
這樣獲得了df如下,篩選出了需要的數據54886個。

df.info()
——————————————————————————
<class 'pandas.core.frame.DataFrame'>
Int64Index: 54886 entries, 0 to 96395
Data columns (total 6 columns):
類別      54886 non-null object
口味      54886 non-null float64
環境      54886 non-null float64
服務      54886 non-null float64
人均消費    54886 non-null int64
性價比     54886 non-null float64
dtypes: float64(4), int64(1), object(1)
memory usage: 2.9+ MB

構建模型

得到數據集df,選擇’類別’進行groupby分組再進行mean值等到每個類別的值。
在這裏插入圖片描述
使用箱型圖進行異常值的排查。
在這裏插入圖片描述
在這裏插入圖片描述
箱型圖使用異常值刪除的函數,對異常值進行刪除。
在這裏插入圖片描述
構建一個選擇具有競爭力的品類的公式的因素,例如’口味’,'人均消費’,‘性價比’,然後通過異常值刪除的函數得出數據集。
在這裏插入圖片描述
將三組數據集放在同一張圖上面。
在這裏插入圖片描述
在這裏插入圖片描述
很明顯是由於沒有做 數據標準化處理。
數據標準化處理之後
在這裏插入圖片描述
在這裏插入圖片描述
設計了一個計算公式,權重自己設計 分數的計算式 比如按照 口味:人均消費:性價比 = 2:5:3 的比例去計算。
先合併df_kw_max_min、df_rj_max_min、df_xjb_max_min,通過pd.merge合併。
在這裏插入圖片描述
計算最後的得分
在這裏插入圖片描述
得出“甜品”是最佳的品類。
使用Qgis製作出關於’人口密度’、‘道路密度’、‘餐飲密度’、'競品密度’、'經度’、’維度’相關的數據集。
在這裏插入圖片描述
數據集有空值,使用dealdata.fillna(0,inplace=True)進行0的填充。

觀察數據得知,‘人口密度’、‘道路密度’、‘餐飲密度’、'競品密度’不在同一緯度上,所以進行數據標準化處理。再計算['綜合指標’]這一新列的數值。按照’人口密度’:'道路密度’:'餐飲密度’:'競品密度’=4:3:2:1的比例。

數據可視化

利用matplotlib進行製圖,使用散點圖。
在這裏插入圖片描述
在這裏插入圖片描述
補充:使用bokeh繪製空間互動圖形。
在這裏插入圖片描述
在這裏插入圖片描述
得出結論:

甜品店選址在(121°472′E,31°301′N)、(121°473′E,31°274′N)、(121°493′E,31°244′N)等地方開設最優。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章