只用一行程式碼分析數據!?(實用的 Python Package)

這篇文章介紹一個好用的 package,只要一行,就可以做出精美、詳細的圖表分析
還可以幫你查看資料是否有缺漏和錯誤的情況!

今天的程式碼成果:

先取得要分析之資料

今天我們來分析一下股票的本益比、股價淨值比和殖利率,
先提供給大家一個爬蟲,讓大家可以直接把資料爬下來:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import datetime
import pandas as pd
import warnings
import requests
from io import StringIO
import pandas_profiling

def crawler(date):
datestr = date.strftime('%Y%m%d')
url = 'https://www.twse.com.tw/exchangeReport/BWIBBU_d?response=csv&date='+datestr+'&selectType=ALL'
res = requests.get(url)
df = pd.read_csv(StringIO(res.text), header=1)
df['本益比'] = pd.to_numeric(df['本益比'], errors='coerce')

return df.dropna(thresh=3).dropna(thresh=0.8, axis=1)

接下來我們就呼叫 crawler 這個函式,就可以將財務數據資料都爬取下來囉!

1
2
df = crawler(datetime.date(2019,10,7))
df.head()

1. 用舊的方法來分析資料

最簡單的方式,假如有用過 pandas 的大家應該都知道,
可以使用 df.describe() 來大致上觀察數據的樣貌
假如你對 pandas 不太熟悉,它有點像是拿來處理表格的資料,
就像是 python 界的 excel 一樣,雖然它非常好用,但是有點太古老(無聊)了!

1
df.describe()

2. 酷炫的方法資料分析

首先我們可以安裝 pandas_profiling

1
pip install pandas_profiling

接下來就可以直接來使用:

1
2
3
import pandas_profiling
df = crawler(datetime.date(2019,10,7))
df.profile_report()

然後我們就會看到超精美的圖表!

找出資料的缺漏或問題

我覺得 pandas_profiling 很棒的地方在於,
可以將資料一口氣全部統整給我們,方便我們去做資料前處理,
例如下圖中的左下角,就可以看到每一個column有哪些警告,

  • 本益比有 20.4 % 是缺漏的:這是正常情況,因為本益比小於零不顯示
  • 殖利率有 20.0 % 是 0:這也是正常情況,因為公司不一定有發股利股息
  • 財報都是用第 2 季的財報:這也是正常的!

有了這種檢驗,更能夠讓我們知道資料的可靠程度,真的非常非常棒!
除了上述的檢驗外,我們還可以

輕鬆檢視每一個 column 的資料

這邊可以看到每一種資料的分佈,可以讓我們更好的掌握數據分佈型態

檢視資料相關性

這邊還可以檢視資料的相關性,這邊有些複雜的名詞,哪天再來跟各位介紹

pandas_profiling 真的是很不錯的 package,
可以幫我們進一步的認識資料,
假如你也覺得這個 package 很實用,
也歡迎你分享給大家喔!

文章不錯,影音課程更讚:


或我們按個 鼓勵一下吧!