【Day8】取得資訊-Python #4:使用pandas存成csv

在取得資料,並且做出圖表後,仍然需要把我們每次的資料儲存下來,這時候pandas就可以輕鬆建立資料的csv


第 12 屆 iT 邦幫忙鐵人賽-原文:https://ithelp.ithome.com.tw/articles/10237392

廢話不多說,直接看這次的程式碼Day8_saveData.py

import requests
import json
import numpy
import pandas

# API位置
start_time = 946656000  # 2000/1/1
end_time = 1600272000  # 2020/9/17
stock_code = 2317
stock_market = "TW"
address = f"https://query1.finance.yahoo.com/v8/finance/chart/{stock_code}.{stock_market}?period1={start_time}&period2={end_time}&interval=1d&events=history&=hP2rOschxO0"

# 使用requests 來跟遠端 API server 索取資料
response = requests.get(address)

# 序列化資料回報
data = json.loads(response.text)

# 把json格式資料放入pandas中
df = pandas.DataFrame(
    data["chart"]["result"][0]["indicators"]["quote"][0],
    index=pandas.to_datetime(
        numpy.array(data["chart"]["result"][0]["timestamp"]) * 1000 * 1000 * 1000
    ),
    columns=["open","high","low","close","volume"]
)
# 印出前3行
print(df[:3])
# 印出前5行
print(df.head())
# 印出後5行
print(df.tail())

# 寫成csv
df.tail().to_csv(f"{stock_code}_最近五天.csv")
df.to_csv(f"{stock_code}_{start_time}_{end_time}.csv")

print("===finished===")

其中注意的是df.to_csv(檔案名稱),這樣就可以把DataFrame轉成csv

和之前不一樣的地方

  • address使用代碼,讓我們的股票代碼和交易所變成變數
  • pandas.DataFrame中多了columns,讓我們每次的資料可以如我們預期的排列,不然每次的開高低收這四個的順序不一樣,到時候我們在處理或觀看的時候很不方便。
  • df.tail():表示最後5筆資料。

~Copyright by Eyelash500~

IT技術文章EY*研究院
iT邦幫忙eyelash*睫毛
Blog睫毛*Relax
Facebook睫毛*Relax