一簾幽夢(mèng)紫菱做的網(wǎng)站網(wǎng)站策劃方案案例
👉博__主👈:米碼收割機(jī)
👉技__能👈:C++/Python語(yǔ)言
👉公眾號(hào)👈:測(cè)試開發(fā)自動(dòng)化【獲取源碼+商業(yè)合作】
👉榮__譽(yù)👈:阿里云博客專家博主、51CTO技術(shù)博主
👉專__注👈:專注主流機(jī)器人、人工智能等相關(guān)領(lǐng)域的開發(fā)、測(cè)試技術(shù)。
python海底撈門店數(shù)據(jù)分析與可視化(數(shù)據(jù)集+源碼+論文)【獨(dú)一無二】
目錄
- python海底撈門店數(shù)據(jù)分析與可視化(數(shù)據(jù)集+源碼+論文)【獨(dú)一無二】
- 一、設(shè)計(jì)要求
- 項(xiàng)目背景
- 主要功能
- 二、設(shè)計(jì)思路
- 1. 導(dǎo)入庫(kù)和設(shè)置
- 2. 讀取數(shù)據(jù)
- 3. 數(shù)據(jù)預(yù)覽和基本信息
- 4. 處理缺失值
- 5. 處理異常值
- 6. 處理重復(fù)值
- 7. 數(shù)據(jù)轉(zhuǎn)換
- 8. 數(shù)據(jù)分組和統(tǒng)計(jì)分析
- 9. 數(shù)據(jù)可視化
- 總結(jié)
一、設(shè)計(jì)要求
項(xiàng)目背景
本項(xiàng)目旨在通過數(shù)據(jù)分析和可視化的方法,對(duì)海底撈門店的營(yíng)業(yè)數(shù)據(jù)進(jìn)行深入的探索和理解。數(shù)據(jù)來源于Excel文件《海底撈門店數(shù)據(jù).xlsx》。項(xiàng)目包括數(shù)據(jù)預(yù)處理、缺失值處理、異常值處理、重復(fù)值處理、數(shù)據(jù)轉(zhuǎn)換、分組統(tǒng)計(jì)分析和數(shù)據(jù)可視化。
主要功能
-
數(shù)據(jù)讀取與預(yù)覽
- 從Excel文件中讀取數(shù)據(jù),展示數(shù)據(jù)的前幾行,提供數(shù)據(jù)的基本信息,包括行列數(shù)、數(shù)據(jù)類型和非空數(shù)統(tǒng)計(jì)。
-
缺失值處理
- 統(tǒng)計(jì)數(shù)據(jù)中的缺失值總數(shù)。
- 提供兩種處理缺失值的方法:刪除含有缺失值的記錄和用眾數(shù)填充缺失值。
-
異常值處理
- 使用箱型圖可視化數(shù)據(jù),識(shí)別異常值。
- 提供兩種去除異常值的方法:四分位數(shù)間距法(IQR)和3σ原則。
-
重復(fù)值處理
- 檢查并刪除數(shù)據(jù)中的重復(fù)值。
-
數(shù)據(jù)轉(zhuǎn)換
- 將“省份”列轉(zhuǎn)換為數(shù)值型數(shù)據(jù),便于后續(xù)分析。
-
分組統(tǒng)計(jì)分析
- 按省份分組統(tǒng)計(jì)各省店鋪數(shù)量。
- 按營(yíng)業(yè)時(shí)長(zhǎng)分組統(tǒng)計(jì)各時(shí)長(zhǎng)區(qū)間內(nèi)的店鋪數(shù)量。
-
數(shù)據(jù)可視化
- 可視化各省店鋪數(shù)量分布。
- 可視化營(yíng)業(yè)時(shí)長(zhǎng)分布。
- 可視化開始營(yíng)業(yè)時(shí)間分布。
- 可視化結(jié)束營(yíng)業(yè)時(shí)間分布。
二、設(shè)計(jì)思路
1. 導(dǎo)入庫(kù)和設(shè)置
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as snsplt.rcParams['font.sans-serif']=['SimHei'] # 用來正常顯示中文標(biāo)簽
plt.rcParams['axes.unicode_minus'] = False # 用來正常顯示負(fù)號(hào)
- 導(dǎo)入必要的庫(kù):
pandas
用于數(shù)據(jù)處理,matplotlib
和seaborn
用于數(shù)據(jù)可視化。 - 設(shè)置繪圖時(shí)中文字體的顯示,確保中文標(biāo)簽?zāi)苷o@示。
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
2. 讀取數(shù)據(jù)
file_path = '海底撈門店數(shù)據(jù).xlsx'
df = pd.read_excel(file_path, engine='openpyxl')
- 從Excel文件中讀取數(shù)據(jù)到一個(gè)DataFrame中。
3. 數(shù)據(jù)預(yù)覽和基本信息
print("數(shù)據(jù)預(yù)覽:")
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈print("缺失值總數(shù):")
print(df.isnull().sum())
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
- 打印數(shù)據(jù)的前幾行,顯示數(shù)據(jù)的基本信息(行列數(shù)、數(shù)據(jù)類型和非空數(shù))。
- 統(tǒng)計(jì)缺失值的總數(shù)。
4. 處理缺失值
# 刪除含有缺失值的記錄
# 代碼略....
print(df_dropna.isnull().sum())# 用眾數(shù)填充缺失值
df_fillna = df.fillna(df.mode().iloc[0])
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈
print(df_fillna.isnull().sum())
- 處理缺失值的方法包括:
- 刪除含有缺失值的記錄。
- 用眾數(shù)填充缺失值。
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
5. 處理異常值
# 箱型圖識(shí)別異常值
plt.figure(figsize=(10, 6))
# 代碼略....
plt.show()# 四分位數(shù)間距法去除異常值
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈IQR = Q3 - Q1
df_no_outliers = df[~((df['營(yíng)業(yè)時(shí)長(zhǎng)'] < (Q1 - 1.5 * IQR)) | (df['營(yíng)業(yè)時(shí)長(zhǎng)'] > (Q3 + 1.5 * IQR)))]
print("去除異常值后的數(shù)據(jù)行列數(shù): ", df_no_outliers.shape)# 3σ原則去除異常值
mean = df['營(yíng)業(yè)時(shí)長(zhǎng)'].mean()
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈print("3σ原則去除異常值后的數(shù)據(jù)行列數(shù): ", df_no_outliers_sigma.shape)
- 使用箱型圖可視化數(shù)據(jù),識(shí)別異常值。
- 使用四分位數(shù)間距法(IQR)和3σ原則去除異常值。
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
6. 處理重復(fù)值
df_no_duplicates = df.drop_duplicates()
print("刪除重復(fù)值后的數(shù)據(jù)行列數(shù): ", df_no_duplicates.shape)
- 刪除重復(fù)值。
7. 數(shù)據(jù)轉(zhuǎn)換
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈
print("轉(zhuǎn)換后的數(shù)據(jù)預(yù)覽:")
print(df.head())
- 將“省份”列轉(zhuǎn)換為數(shù)值型數(shù)據(jù),便于后續(xù)分析。
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
8. 數(shù)據(jù)分組和統(tǒng)計(jì)分析
# 按省份分組統(tǒng)計(jì)各省店鋪數(shù)量
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈print("按省份分組統(tǒng)計(jì):")
print(province_group)
# 按營(yíng)業(yè)時(shí)間長(zhǎng)度分組統(tǒng)計(jì)
time_group = df.groupby('營(yíng)業(yè)時(shí)長(zhǎng)')['店名'].count().reset_index()
# 代碼略....👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “門店” 獲取。👈👈👈print("按營(yíng)業(yè)時(shí)間長(zhǎng)度分組統(tǒng)計(jì):")
print(time_group)
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
- 按省份和營(yíng)業(yè)時(shí)長(zhǎng)分組,統(tǒng)計(jì)各組的店鋪數(shù)量。
9. 數(shù)據(jù)可視化
# 店鋪數(shù)量按省份分布
plt.figure(figsize=(14, 7))
# 代碼略....
# 代碼略....
plt.show()
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
# 營(yíng)業(yè)時(shí)長(zhǎng)分布
plt.figure(figsize=(10, 6))
# 代碼略....
# 代碼略....
plt.show()
# 開始營(yíng)業(yè)時(shí)間分布
plt.figure(figsize=(10, 6))
# 代碼略....
# 代碼略....
plt.show()
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈
# 結(jié)束營(yíng)業(yè)時(shí)間分布
# 代碼略....
# 代碼略....
plt.show()
- 可視化數(shù)據(jù),展示各省店鋪數(shù)量分布、營(yíng)業(yè)時(shí)長(zhǎng)分布、開始營(yíng)業(yè)時(shí)間分布和結(jié)束營(yíng)業(yè)時(shí)間分布。
總結(jié)
這段代碼通過讀取、預(yù)覽、處理和分析數(shù)據(jù),最后進(jìn)行可視化展示。其設(shè)計(jì)思路清晰、結(jié)構(gòu)完整,覆蓋了數(shù)據(jù)處理和分析的多個(gè)方面,包括缺失值處理、異常值處理、重復(fù)值處理、數(shù)據(jù)轉(zhuǎn)換、數(shù)據(jù)分組統(tǒng)計(jì)和數(shù)據(jù)可視化。
👉👉👉 源碼獲取 關(guān)注【測(cè)試開發(fā)自動(dòng)化】公眾號(hào),回復(fù) “ 門店 ” 獲取。👈👈👈