欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python使用Akshare與Streamlit實(shí)現(xiàn)股票估值分析教程(圖文代碼)

 更新時(shí)間:2025年08月02日 14:31:01   作者:Nan_An_29  
入職測(cè)試中的一道題,要求:從Akshare下載某一個(gè)股票近十年的財(cái)務(wù)報(bào)表包括,資產(chǎn)負(fù)債表,利潤(rùn)表,現(xiàn)金流量表,保存到本地Csv文件,對(duì)該公司進(jìn)行財(cái)務(wù)分析,如提取近五年,營(yíng)業(yè)收入,凈利潤(rùn)數(shù)據(jù),并且算出同比增長(zhǎng),通過(guò)Pandas處理、Matplotlib可視化及Streamlit部署,實(shí)現(xiàn)財(cái)務(wù)數(shù)據(jù)分析

一、前言

入職測(cè)試中的一道題,要求:從Akshare下載某一個(gè)股票近十年的財(cái)務(wù)報(bào)表包括,資產(chǎn)負(fù)債表,利潤(rùn)表,現(xiàn)金流量表,保存到本地Csv文件,對(duì)該公司進(jìn)行財(cái)務(wù)分析,如提取近五年,營(yíng)業(yè)收入,凈利潤(rùn)數(shù)據(jù),并且算出同比增長(zhǎng),以上的分析以圖表顯示,用戶可以很方便的看出發(fā)展趨勢(shì),通過(guò)streamlit 以web形式展示。

二、核心知識(shí)點(diǎn)梳理

1、Akshare數(shù)據(jù)獲取

  • 用于從新浪財(cái)經(jīng)接口獲取上市公司財(cái)務(wù)報(bào)表(資產(chǎn)負(fù)債表、利潤(rùn)表、現(xiàn)金流量表)。

  • 關(guān)鍵函數(shù):ak.stock_financial_report_sina(),需指定股票代碼和報(bào)表類型。

2、Pandas數(shù)據(jù)處理

  • 數(shù)據(jù)清洗:解析日期、設(shè)置索引、排序。

  • 計(jì)算衍生指標(biāo):凈利潤(rùn)、同比增長(zhǎng)率。

  • 單位轉(zhuǎn)換:將數(shù)值單位從“元”轉(zhuǎn)換為“億元”。

3、Matplotlib可視化

  • 繪制雙軸趨勢(shì)圖(營(yíng)業(yè)收入與凈利潤(rùn))。

  • 同比增長(zhǎng)率折線圖,標(biāo)注數(shù)據(jù)標(biāo)簽。

  • 圖表格式優(yōu)化:日期格式化、網(wǎng)格線、中文字體支持。

4、Streamlit Web應(yīng)用

  • 快速構(gòu)建交互式儀表盤,支持多標(biāo)簽頁(yè)布局。

  • 數(shù)據(jù)動(dòng)態(tài)展示:表格、圖表、指標(biāo)卡片的實(shí)時(shí)渲染。

5、財(cái)務(wù)分析基礎(chǔ)

  • 凈利潤(rùn) = 營(yíng)業(yè)總收入 - 營(yíng)業(yè)總成本。

  • 同比增長(zhǎng)率 =(當(dāng)期值 - 去年同期值)/ 去年同期值 × 100%。

二、代碼逐段解析

1、導(dǎo)入依賴庫(kù)

import akshare as ak
import pandas as pd
import streamlit as st
import matplotlib.pyplot as plt
from matplotlib.dates import DateFormatter

作用

  • akshare:獲取股票財(cái)務(wù)數(shù)據(jù)。

  • pandas:數(shù)據(jù)清洗與計(jì)算。

  • streamlit:構(gòu)建Web界面。

  • matplotlib:生成可視化圖表。

2、數(shù)據(jù)獲取與保存

# 獲取貴州茅臺(tái)近十年財(cái)務(wù)報(bào)表
balance_sheet = ak.stock_financial_report_sina(stock="sh600519", symbol="資產(chǎn)負(fù)債表").head(40)
income_statement = ak.stock_financial_report_sina(stock="sh600519", symbol="利潤(rùn)表").head(40)
cash_flow = ak.stock_financial_report_sina(stock="sh600519", symbol="現(xiàn)金流量表").head(40)

# 保存為CSV文件
balance_sheet.to_csv('C:/Users/Hp/Desktop/Test1/balance_sheet.csv', index=False)#要填你要保存的地址
income_statement.to_csv('C:/Users/Hp/Desktop/Test1/income_statement.csv', index=False)
cash_flow.to_csv('C:/Users/Hp/Desktop/Test1/cash_flow.csv', index=False)

關(guān)鍵參數(shù)

  • stock="sh600519":指定股票代碼(貴州茅臺(tái))。

  • symbol:指定報(bào)表類型(資產(chǎn)負(fù)債表/利潤(rùn)表/現(xiàn)金流量表)。

  • .head(40):取前40行數(shù)據(jù)(按季度存儲(chǔ),10年共40個(gè)季度)。

注意事項(xiàng)

  • 文件路徑需根據(jù)本地環(huán)境修改(如C:/Users/Hp/Desktop/Test1/)。

3、數(shù)據(jù)處理與指標(biāo)計(jì)算

# 讀取數(shù)據(jù)并設(shè)置日期索引
bs_data = pd.read_csv('C:/Users/Hp/Desktop/Test1/balance_sheet.csv', parse_dates=['報(bào)告日'], index_col='報(bào)告日').head(20)
is_data = pd.read_csv('C:/Users/Hp/Desktop/Test1/income_statement.csv', parse_dates=['報(bào)告日'], index_col='報(bào)告日').head(20)
cf_data = pd.read_csv('C:/Users/Hp/Desktop/Test1/cash_flow.csv', parse_dates=['報(bào)告日'], index_col='報(bào)告日').head(20)

# 按日期排序
bs_data = bs_data.sort_values(by='報(bào)告日')
is_data = is_data.sort_values(by='報(bào)告日')
cf_data = cf_data.sort_values(by='報(bào)告日')

# 計(jì)算凈利潤(rùn)
is_data['總凈利潤(rùn)'] = is_data['營(yíng)業(yè)總收入'] - is_data['營(yíng)業(yè)總成本']

# 計(jì)算同比增長(zhǎng)率
is_data['營(yíng)收同比增長(zhǎng)'] = (is_data['營(yíng)業(yè)收入'] - is_data['營(yíng)業(yè)收入'].shift(4)) / is_data['營(yíng)業(yè)收入'].shift(4) * 100
is_data['總凈利潤(rùn)同比增長(zhǎng)'] = (is_data['總凈利潤(rùn)'] - is_data['總凈利潤(rùn)'].shift(4)) / is_data['總凈利潤(rùn)'].shift(4) * 100

# 單位轉(zhuǎn)換為億元
is_data['營(yíng)業(yè)收入_億元'] = is_data['營(yíng)業(yè)收入'] / 1e8
is_data['總凈利潤(rùn)_億元'] = is_data['總凈利潤(rùn)'] / 1e8

關(guān)鍵操作

  • parse_dates=['報(bào)告日']:將日期列解析為時(shí)間戳。

  • .shift(4):取4期前的數(shù)據(jù)(季度數(shù)據(jù),4期即去年同期)。

  • 單位轉(zhuǎn)換:將原始數(shù)據(jù)除以1e8(即10^8),轉(zhuǎn)換為“億元”。

4、Streamlit可視化展示

# 創(chuàng)建Web界面
st.title('貴州茅臺(tái)(600519)財(cái)務(wù)分析儀表板')

# 設(shè)置中文字體
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 分標(biāo)簽頁(yè)展示
tab1, tab2 = st.tabs(["財(cái)務(wù)指標(biāo)趨勢(shì)", "同比增長(zhǎng)分析"])

with tab1:
    # 營(yíng)業(yè)收入與凈利潤(rùn)趨勢(shì)圖
    fig1, (ax1, ax2) = plt.subplots(2, 1, figsize=(12, 10))
    ax1.plot(is_data.index, is_data['營(yíng)業(yè)收入_億元'], label='營(yíng)業(yè)收入', color='#1f77b4', marker='o')
    ax2.plot(is_data.index, is_data['總凈利潤(rùn)_億元'], label='總凈利潤(rùn)', color='#2ca02c', marker='s')
    # 設(shè)置圖表格式(略)
    st.pyplot(fig1)

with tab2:
    # 同比增長(zhǎng)率分析
    growth_data = is_data[['營(yíng)收同比增長(zhǎng)', '總凈利潤(rùn)同比增長(zhǎng)']].dropna()
    fig2, ax = plt.subplots(figsize=(12, 6))
    ax.plot(growth_data.index, growth_data['營(yíng)收同比增長(zhǎng)'], label='營(yíng)收同比增長(zhǎng)率', color='#d62728', marker='^')
    ax.plot(growth_data.index, growth_data['總凈利潤(rùn)同比增長(zhǎng)'], label='凈利潤(rùn)同比增長(zhǎng)率', color='#ff7f0e', marker='d')
    # 設(shè)置圖表格式(略)
    st.pyplot(fig2)

# 展示核心數(shù)據(jù)表格
st.subheader("核心財(cái)務(wù)數(shù)據(jù)")
col1, col2 = st.columns(2)
with col1:
    st.dataframe(is_data[['營(yíng)業(yè)收入_億元', '總凈利潤(rùn)_億元']].tail(1).style.format("{:.2f}"))
with col2:
    st.dataframe(growth_data[['營(yíng)收同比增長(zhǎng)', '總凈利潤(rùn)同比增長(zhǎng)']].tail(1).style.format("{:.1f}%"))

功能亮點(diǎn)

  • 雙標(biāo)簽頁(yè)設(shè)計(jì),分別展示趨勢(shì)與增長(zhǎng)率。

  • 數(shù)據(jù)表格動(dòng)態(tài)更新,始終顯示最新季度結(jié)果。

三、運(yùn)行與效果

1、安裝依賴:

pip install akshare pandas streamlit matplotlib

2、啟動(dòng)應(yīng)用:

streamlit run C:\Users\Hp\Desktop\py\Test1.py

3、效果展示:

四、總結(jié)

到此這篇關(guān)于python使用Akshare與Streamlit實(shí)現(xiàn)股票估值分析教程(圖文代碼)的文章就介紹到這了,更多相關(guān)python用Akshare與Streamlit實(shí)現(xiàn)股票分析內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換

    Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換

    這篇文章主要介紹了Python3如何實(shí)現(xiàn)Win10桌面自動(dòng)切換,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-08-08
  • python 實(shí)現(xiàn)單通道轉(zhuǎn)3通道

    python 實(shí)現(xiàn)單通道轉(zhuǎn)3通道

    今天小編就為大家分享一篇python 實(shí)現(xiàn)單通道轉(zhuǎn)3通道,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2019-12-12
  • opencv實(shí)踐項(xiàng)目之圖像拼接詳細(xì)步驟

    opencv實(shí)踐項(xiàng)目之圖像拼接詳細(xì)步驟

    OpenCV的應(yīng)用領(lǐng)域非常廣泛,包括圖像拼接、圖像降噪、產(chǎn)品質(zhì)檢、人機(jī)交互、人臉識(shí)別、動(dòng)作識(shí)別、動(dòng)作跟蹤、無(wú)人駕駛等,下面這篇文章主要給大家介紹了關(guān)于opencv實(shí)踐項(xiàng)目之圖像拼接的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法

    tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法

    這篇文章主要介紹了tensorflow使用freeze_graph.py將ckpt轉(zhuǎn)為pb文件的方法,需要的朋友可以參考下
    2020-04-04
  • pandas數(shù)據(jù)拼接的實(shí)現(xiàn)示例

    pandas數(shù)據(jù)拼接的實(shí)現(xiàn)示例

    這篇文章主要介紹了pandas數(shù)據(jù)拼接的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-04-04
  • 利用Python實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的示例代碼

    利用Python實(shí)現(xiàn)簡(jiǎn)易計(jì)算器的示例代碼

    最近學(xué)習(xí)了字符串,運(yùn)算符,條件語(yǔ)句,循環(huán)語(yǔ)句,我在想可以用我最近學(xué)的東西做什么? 看到運(yùn)算我就想到了可以做一個(gè)簡(jiǎn)易的計(jì)算器,感興趣的可以了解一下
    2022-11-11
  • python3讀取autocad圖形文件.py實(shí)例

    python3讀取autocad圖形文件.py實(shí)例

    這篇文章主要介紹了python3讀取autocad圖形文件.py實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2020-06-06
  • python使用aiohttp通過(guò)設(shè)置代理爬取基金數(shù)據(jù)簡(jiǎn)單示例

    python使用aiohttp通過(guò)設(shè)置代理爬取基金數(shù)據(jù)簡(jiǎn)單示例

    這篇文章主要為大家介紹了python使用aiohttp通過(guò)設(shè)置代理爬取基金數(shù)據(jù)簡(jiǎn)單示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-06-06
  • Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序

    Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序

    這篇文章主要為大家詳細(xì)介紹了Python實(shí)現(xiàn)圖片格式轉(zhuǎn)換小程序,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-08-08
  • NumPy 數(shù)組屬性的具體使用

    NumPy 數(shù)組屬性的具體使用

    本文主要介紹了NumPy 數(shù)組屬性的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08

最新評(píng)論