iT邦幫忙

2025 iThome 鐵人賽

DAY 5
0
AI & Data

從網路爬蟲到資料洞察的應用系列 第 5

轉換成 pandas DataFrame

  • 分享至 

  • xImage
  •  

昨天我們已經從 JSON 中成功提取了需要的資料:日期、收盤價、成交量。雖然這些資料已經整理成 list,但如果我們要進一步做統計、分析或畫圖,單純的 list 結構會變得不好操作。這時候就要引入一個非常強大的工具 —— pandas DataFrame。

為什麼要用 DataFrame

雖然我們可以用 list 或 dictionary 來存放資料,但如果數據越來越多,就會變得不容易閱讀或處理。DataFrame 提供幾個好處:

  • 結構化表格:資料以「列」和「欄」的形式呈現,清晰直觀。
  • 方便排序與篩選:例如可以直接按照日期、收盤價大小進行排序。
  • 強大分析功能:之後能直接用內建方法計算平均、最大值,或搭配 matplotlib 畫出趨勢圖。

也就是說,把我們昨天整理的三個 list 合併成 DataFrame,資料就能以「表格」形式呈現,後續操作會輕鬆許多。

程式碼示範

import twstock
import pandas as pd

stock = twstock.Stock('2330')

dates = stock.date
stock_data = {
    'Date': stock.date,
    'Close': stock.close,
    'Volume': stock.capacity
}

closes = stock.close
# 轉換成 pandas DataFrame
df = pd.DataFrame(stock_data)

volumes = stock.capacity
df['Date'] = pd.to_datetime(df['Date'])

# 把三個欄位打包在一起
stock_data = list(zip(dates, closes, volumes))
# 依照 'Date' 欄位做降冪排序 (ascending=False),並重設 index
df = df.sort_values(by='Date', ascending=False).reset_index(drop=True)

for row in stock_data[:5]:
    print(row)
print(df.head())

執行結果 (範例),這張表格就是用 pandas DataFrame 轉換後的結果,讓我們能更清楚地觀察股票價格與成交量的變化。

        Date   Close    Volume
0 2025-09-18  1285.0  24049000
1 2025-09-17  1265.0  32019276
2 2025-09-16  1280.0  42279997
3 2025-09-15  1255.0  26019117
4 2025-09-12  1260.0  28224895

重點整理

  • twstock 可以快速抓取台股的歷史資料,例如日期、收盤價、成交量。
  • 利用 pandas DataFrame,我們可以把原本分散在 list 裡的資料整合成「表格」。
  • 把日期轉換成 datetime 格式後,就能方便排序或繪圖。

那今天就先這樣。
/images/emoticon/emoticon29.gif


上一篇
解析 JSON → 提取日期、收盤價、成交量
系列文
從網路爬蟲到資料洞察的應用5
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言