激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python實現制作銷售數據可視化看板詳解

Python實現制作銷售數據可視化看板詳解

2022-03-09 00:04程序員_宇寧 Python

在數據時代,銷售數據分析的重要性已無需贅言。只有對銷售數據的準確分析我們才有可能找準數據變動的原因。本文將介紹用Python制作銷售數據大屏的方法。感興趣的可以關注一下

在數據時代,銷售數據分析的重要性已無需贅言。

只有對銷售數據的準確分析我們才有可能找準數據變動(增長或下滑)的原因。

然后解決問題、發(fā)現新的增長點才會成為可能!

今天就給大家介紹一個用Python制作銷售數據大屏的方法。

主要使用Python的Streamlit庫、Plotly庫、Pandas庫進行搭建。

Python實現制作銷售數據可視化看板詳解

其中Pandas處理數據,Plotly制作可視化圖表,Streamlit搭建可視化頁面。

對于以上三個庫,Streamlit庫可能大家會比較陌生,我簡單介紹一下。

Streamlit是一個完全免費的開源應用程序框架,它能幫你不用懂得復雜的HTML,CSS等前端技術就能快速做出來一個炫酷的Web頁面。

 

1. 數據

使用的數據是虛構數據,某超市2021年銷售訂單數據,共有1000條的訂單數據。

Python實現制作銷售數據可視化看板詳解

城市有三個,分別為北京、上海、杭州。顧客類型有兩種,為會員和普通。顧客性別為男性和女性。

剩下還包含訂單編號、商品類型、單價、數量、總價、日期、時間、支付方式、成本、毛利率、總收入、評分等信息。

通用Pandas的read_excel方法讀取數據。

跳過前3行,選取B到R列,1000行數據。

def get_data_from_excel():
  df = pd.read_excel(
      io="supermarkt_sales.xlsx",
      engine="openpyxl",
      sheet_name="Sales",
      skiprows=3,
      usecols="B:R",
      nrows=1000,
  )
  # 添加小時列數據
  df["小時"] = pd.to_datetime(df["時間"], format="%H:%M:%S").dt.hour
  return df

df = get_data_from_excel()
print(df)

成功讀取數據,結果如下。

Python實現制作銷售數據可視化看板詳解

下面便可以來編寫頁面了。

 

2. 網頁標題和圖標

我們都知道當瀏覽器打開一個網頁,會有標題和圖標。

Python實現制作銷售數據可視化看板詳解

所以我們需先設置本次網頁的名稱、圖標、布局等。

這也是使用Streamlit搭建頁面,使用的第一個Streamlit命令,并且只能設置一次。

# 設置網頁信息 
st.set_page_config(page_title="銷售數據大屏", page_icon=":bar_chart:", layout="wide")

其中page_icon參數可以使用表情符號代碼來顯示圖標。

Python實現制作銷售數據可視化看板詳解

妥妥的表情符號代碼大全!

 

3. 側邊欄和多選框

st.sidebar(側邊欄),每個傳遞給st.sidebar的元素都會被固定在左邊,讓用戶可以專注于主頁中的內容。

multiselect(多選框)是一個交互性的部件,可以通過它進行數據篩選。

# 側邊欄
st.sidebar.header("請在這里篩選:")
city = st.sidebar.multiselect(
  "選擇城市:",
  options=df["城市"].unique(),
  default=df["城市"].unique()
)

customer_type = st.sidebar.multiselect(
  "選擇顧客類型:",
  options=df["顧客類型"].unique(),
  default=df["顧客類型"].unique(),
)

gender = st.sidebar.multiselect(
  "選擇性別:",
  options=df["性別"].unique(),
  default=df["性別"].unique()
)

df_selection = df.query(
  "城市 == @city & 顧客類型 ==@customer_type & 性別 == @gender"
)

結合Pandas的query查詢,就能對數據進行過濾。

通過上述代碼就搭建成功了,如下圖左側。

Python實現制作銷售數據可視化看板詳解

點擊側邊欄的右上角關閉符號,側邊欄即可隱藏。

網頁將會展示主頁面。

Python實現制作銷售數據可視化看板詳解

 

4. 主頁面信息

接下來編寫主頁面信息,包含主頁標題、銷售總額、平均評分、平均銷售額信息。

和網頁的圖標一樣,通過表情符號代碼實現。

# 主頁面
st.title(":bar_chart: 銷售數據大屏")
st.markdown("##")

# 核心指標, 銷售總額、平均評分、星級、平均銷售額數據
total_sales = int(df_selection["總價"].sum())
average_rating = round(df_selection["評分"].mean(), 1)
star_rating = ":star:" * int(round(average_rating, 0))
average_sale_by_transaction = round(df_selection["總價"].mean(), 2)


# 3列布局
left_column, middle_column, right_column = st.columns(3)

# 添加相關信息
with left_column:
  st.subheader("銷售總額:")
  st.subheader(f"RMB {total_sales:,}")
with middle_column:
  st.subheader("平均評分:")
  st.subheader(f"{average_rating} {star_rating}")
with right_column:
  st.subheader("平均銷售額:")
  st.subheader(f"RMB {average_sale_by_transaction}")

# 分隔符
st.markdown("""---""")

完成核心指標數據的處理,并將其進行布局顯示。

Python實現制作銷售數據可視化看板詳解

 

5. 主頁面圖表

包含了兩個圖表,一個是每小時銷售額,一個是各類商品銷售總額。通過Plotly Express完成圖表的繪制。

Plotly Express是一個新的高級Python可視化庫,是Plotly.py的高級封裝,它為復雜的圖表提供了一個簡單的語法。

受Seaborn和ggplot2的啟發(fā),它專門設計為具有簡潔,一致且易于學習的API。只需一次導入,就可以在一個函數調用中創(chuàng)建豐富的交互式繪圖。

# 各類商品銷售情況(柱狀圖)
sales_by_product_line = (
  df_selection.groupby(by=["商品類型"]).sum()[["總價"]].sort_values(by="總價")
)
fig_product_sales = px.bar(
  sales_by_product_line,
  x="總價",
  y=sales_by_product_line.index,
  orientation="h",
  color_discrete_sequence=["#0083B8"] * len(sales_by_product_line),
  template="plotly_white",
)
fig_product_sales.update_layout(
  plot_bgcolor="rgba(0,0,0,0)",
  xaxis=(dict(showgrid=False))
)

# 每小時銷售情況(柱狀圖)
sales_by_hour = df_selection.groupby(by=["小時"]).sum()[["總價"]]
print(sales_by_hour.index)
fig_hourly_sales = px.bar(
  sales_by_hour,
  x=sales_by_hour.index,
  y="總價",
  color_discrete_sequence=["#0083B8"] * len(sales_by_hour),
  template="plotly_white",
)
fig_hourly_sales.update_layout(
  xaxis=dict(tickmode="linear"),
  plot_bgcolor="rgba(0,0,0,0)",
  yaxis=(dict(showgrid=False)),
)


left_column, right_column = st.columns(2)
left_column.plotly_chart(fig_hourly_sales, use_container_width=True)
right_column.plotly_chart(fig_product_sales, use_container_width=True)

添加數據,設置圖表配置,以及網頁布局。

得到結果如下。

Python實現制作銷售數據可視化看板詳解

 

6. 隱藏部件

當我們通過Streamlit搭建一個界面,默認就會有紅線、菜單、結尾的"Make with Streamlit"。

Python實現制作銷售數據可視化看板詳解

為了美觀,這里可以將它們都隱藏掉。

# 隱藏streamlit默認格式信息
hide_st_style = """
          <style>
          #MainMenu {visibility: hidden;}
          footer {visibility: hidden;}
          header {visibility: hidden;}
          </style>
          """

st.markdown(hide_st_style, unsafe_allow_html=True)

這樣一個可交互的銷售數據看板,就完成搭建啦!

# 安裝依賴庫
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple plotly==4.14.3
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pandas==1.1.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple streamlit==0.86.0
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl==3.0.6

# 運行
streamlit run app.py

安裝相關依賴,命令行終端運行程序。 

以上就是Python實現制作銷售數據可視化看板詳解的詳細內容,更多關于Python 數據可視化的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/xue_ningmeng/article/details/121525117

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲综合精品成人 | 欧美一级网 | 日本xxxx色视频在线观看免费, | 久久久久久久久免费 | 黄色网址免费在线 | 香蕉成人在线观看 | 欧美精品一级片 | 九九热免费视频在线观看 | a级高清免费毛片av在线 | 欧美无极品 | 黄视频网站免费在线观看 | 久久午夜神器 | 艹男人的日日夜夜 | 91 免费视频 | 在线免费观看毛片视频 | 精品亚洲夜色av98在线观看 | 午夜精品一区二区三区免费 | 小雪奶水翁胀公吸小说最新章节 | 羞羞视频在线免费 | 国产视频在线播放 | 91青青| 精品中文一区 | 3xxx| 午夜视频久久 | 毛片中文字幕 | 久久久成人999亚洲区美女 | 日本黄色免费片 | 久色免费| 午夜精品一区二区三区免费 | 一级黄色片在线看 | 午夜视频久久久 | 7m视频成人精品分类 | 亚洲网站一区 | 欧美日韩亚洲精品一区二区三区 | 色骚综合| 欧美一区二区黄色片 | 在线播放亚洲视频 | 奇米影视亚洲精品一区 | av成人免费在线观看 | 欧美www | 日本aaaa片毛片免费观蜜桃 |