{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 0: Import package"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [],
   "source": [
    "import requests as r\n",
    "import json\n",
    "import pandas as pd\n",
    "from datetime import datetime, date\n",
    "import matplotlib.pyplot as plt\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 1: 下載一個月台股個股成交資料"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "url = \"https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20200801&stockNo=2330\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<Response [200]>"
      ]
     },
     "execution_count": 3,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "r.get(url)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [],
   "source": [
    "res = r.get(url)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "{'data': [['109/08/03',\n",
       "   '77,288,571',\n",
       "   '32,339,719,000',\n",
       "   '420.50',\n",
       "   '424.00',\n",
       "   '415.00',\n",
       "   '416.00',\n",
       "   '-9.50',\n",
       "   '43,360'],\n",
       "  ['109/08/04',\n",
       "   '41,697,445',\n",
       "   '17,600,499,460',\n",
       "   '421.50',\n",
       "   '425.50',\n",
       "   '418.50',\n",
       "   '425.50',\n",
       "   '+9.50',\n",
       "   '22,250'],\n",
       "  ['109/08/05',\n",
       "   '47,460,834',\n",
       "   '20,356,413,204',\n",
       "   '430.50',\n",
       "   '433.50',\n",
       "   '426.00',\n",
       "   '429.00',\n",
       "   '+3.50',\n",
       "   '24,715'],\n",
       "  ['109/08/06',\n",
       "   '43,443,627',\n",
       "   '18,877,761,758',\n",
       "   '437.50',\n",
       "   '438.00',\n",
       "   '431.00',\n",
       "   '435.00',\n",
       "   '+6.00',\n",
       "   '22,414'],\n",
       "  ['109/08/07',\n",
       "   '37,611,388',\n",
       "   '16,218,241,255',\n",
       "   '433.50',\n",
       "   '434.00',\n",
       "   '428.00',\n",
       "   '433.00',\n",
       "   '-2.00',\n",
       "   '19,739'],\n",
       "  ['109/08/10',\n",
       "   '36,067,500',\n",
       "   '15,674,843,876',\n",
       "   '427.50',\n",
       "   '437.50',\n",
       "   '427.50',\n",
       "   '435.50',\n",
       "   '+2.50',\n",
       "   '21,342'],\n",
       "  ['109/08/11',\n",
       "   '34,545,313',\n",
       "   '14,918,017,903',\n",
       "   '432.00',\n",
       "   '435.00',\n",
       "   '429.00',\n",
       "   '429.00',\n",
       "   '-6.50',\n",
       "   '20,297'],\n",
       "  ['109/08/12',\n",
       "   '53,980,474',\n",
       "   '22,721,731,886',\n",
       "   '422.00',\n",
       "   '423.50',\n",
       "   '419.00',\n",
       "   '419.00',\n",
       "   '-10.00',\n",
       "   '32,761'],\n",
       "  ['109/08/13',\n",
       "   '45,669,335',\n",
       "   '19,514,322,038',\n",
       "   '428.00',\n",
       "   '429.00',\n",
       "   '424.50',\n",
       "   '429.00',\n",
       "   '+10.00',\n",
       "   '21,499'],\n",
       "  ['109/08/14',\n",
       "   '24,259,947',\n",
       "   '10,332,447,763',\n",
       "   '424.00',\n",
       "   '428.00',\n",
       "   '423.00',\n",
       "   '427.00',\n",
       "   '-2.00',\n",
       "   '12,642'],\n",
       "  ['109/08/17',\n",
       "   '34,607,731',\n",
       "   '14,930,831,216',\n",
       "   '427.00',\n",
       "   '435.00',\n",
       "   '425.50',\n",
       "   '435.00',\n",
       "   '+8.00',\n",
       "   '20,823'],\n",
       "  ['109/08/18',\n",
       "   '45,504,160',\n",
       "   '19,824,413,320',\n",
       "   '440.00',\n",
       "   '440.50',\n",
       "   '432.00',\n",
       "   '433.00',\n",
       "   '-2.00',\n",
       "   '21,119'],\n",
       "  ['109/08/19',\n",
       "   '31,486,800',\n",
       "   '13,574,970,200',\n",
       "   '436.00',\n",
       "   '436.50',\n",
       "   '427.50',\n",
       "   '427.50',\n",
       "   '-5.50',\n",
       "   '18,279'],\n",
       "  ['109/08/20',\n",
       "   '75,155,235',\n",
       "   '31,353,886,930',\n",
       "   '427.00',\n",
       "   '427.50',\n",
       "   '401.00',\n",
       "   '415.00',\n",
       "   '-12.50',\n",
       "   '45,670'],\n",
       "  ['109/08/21',\n",
       "   '41,956,467',\n",
       "   '17,770,610,338',\n",
       "   '421.50',\n",
       "   '427.00',\n",
       "   '420.00',\n",
       "   '424.50',\n",
       "   '+9.50',\n",
       "   '23,059'],\n",
       "  ['109/08/24',\n",
       "   '49,199,406',\n",
       "   '21,139,093,710',\n",
       "   '427.50',\n",
       "   '434.50',\n",
       "   '425.00',\n",
       "   '428.00',\n",
       "   '+3.50',\n",
       "   '24,672'],\n",
       "  ['109/08/25',\n",
       "   '37,024,899',\n",
       "   '16,076,146,369',\n",
       "   '433.50',\n",
       "   '436.00',\n",
       "   '430.50',\n",
       "   '434.50',\n",
       "   '+6.50',\n",
       "   '22,035'],\n",
       "  ['109/08/26',\n",
       "   '41,406,340',\n",
       "   '18,169,230,108',\n",
       "   '435.50',\n",
       "   '442.00',\n",
       "   '435.00',\n",
       "   '442.00',\n",
       "   '+7.50',\n",
       "   '25,305'],\n",
       "  ['109/08/27',\n",
       "   '57,206,712',\n",
       "   '25,658,355,402',\n",
       "   '448.00',\n",
       "   '453.50',\n",
       "   '444.00',\n",
       "   '444.00',\n",
       "   '+2.00',\n",
       "   '31,575'],\n",
       "  ['109/08/28',\n",
       "   '57,039,210',\n",
       "   '24,868,453,700',\n",
       "   '440.00',\n",
       "   '440.50',\n",
       "   '431.00',\n",
       "   '435.00',\n",
       "   '-9.00',\n",
       "   '35,253'],\n",
       "  ['109/08/31',\n",
       "   '88,569,538',\n",
       "   '38,106,113,563',\n",
       "   '437.00',\n",
       "   '439.50',\n",
       "   '426.50',\n",
       "   '426.50',\n",
       "   '-8.50',\n",
       "   '28,294']],\n",
       " 'date': '20200801',\n",
       " 'fields': ['日期', '成交股數', '成交金額', '開盤價', '最高價', '最低價', '收盤價', '漲跌價差', '成交筆數'],\n",
       " 'notes': ['符號說明:+/-/X表示漲/跌/不比價',\n",
       "  '當日統計資訊含一般、零股、盤後定價、鉅額交易,不含拍賣、標購。',\n",
       "  'ETF證券代號第六碼為K、M、S、C者,表示該ETF以外幣交易。'],\n",
       " 'stat': 'OK',\n",
       " 'title': '109年08月 2330 台積電           各日成交資訊'}"
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "res.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_json = res.json()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "[['109/08/03',\n",
       "  '77,288,571',\n",
       "  '32,339,719,000',\n",
       "  '420.50',\n",
       "  '424.00',\n",
       "  '415.00',\n",
       "  '416.00',\n",
       "  '-9.50',\n",
       "  '43,360'],\n",
       " ['109/08/04',\n",
       "  '41,697,445',\n",
       "  '17,600,499,460',\n",
       "  '421.50',\n",
       "  '425.50',\n",
       "  '418.50',\n",
       "  '425.50',\n",
       "  '+9.50',\n",
       "  '22,250'],\n",
       " ['109/08/05',\n",
       "  '47,460,834',\n",
       "  '20,356,413,204',\n",
       "  '430.50',\n",
       "  '433.50',\n",
       "  '426.00',\n",
       "  '429.00',\n",
       "  '+3.50',\n",
       "  '24,715'],\n",
       " ['109/08/06',\n",
       "  '43,443,627',\n",
       "  '18,877,761,758',\n",
       "  '437.50',\n",
       "  '438.00',\n",
       "  '431.00',\n",
       "  '435.00',\n",
       "  '+6.00',\n",
       "  '22,414'],\n",
       " ['109/08/07',\n",
       "  '37,611,388',\n",
       "  '16,218,241,255',\n",
       "  '433.50',\n",
       "  '434.00',\n",
       "  '428.00',\n",
       "  '433.00',\n",
       "  '-2.00',\n",
       "  '19,739'],\n",
       " ['109/08/10',\n",
       "  '36,067,500',\n",
       "  '15,674,843,876',\n",
       "  '427.50',\n",
       "  '437.50',\n",
       "  '427.50',\n",
       "  '435.50',\n",
       "  '+2.50',\n",
       "  '21,342'],\n",
       " ['109/08/11',\n",
       "  '34,545,313',\n",
       "  '14,918,017,903',\n",
       "  '432.00',\n",
       "  '435.00',\n",
       "  '429.00',\n",
       "  '429.00',\n",
       "  '-6.50',\n",
       "  '20,297'],\n",
       " ['109/08/12',\n",
       "  '53,980,474',\n",
       "  '22,721,731,886',\n",
       "  '422.00',\n",
       "  '423.50',\n",
       "  '419.00',\n",
       "  '419.00',\n",
       "  '-10.00',\n",
       "  '32,761'],\n",
       " ['109/08/13',\n",
       "  '45,669,335',\n",
       "  '19,514,322,038',\n",
       "  '428.00',\n",
       "  '429.00',\n",
       "  '424.50',\n",
       "  '429.00',\n",
       "  '+10.00',\n",
       "  '21,499'],\n",
       " ['109/08/14',\n",
       "  '24,259,947',\n",
       "  '10,332,447,763',\n",
       "  '424.00',\n",
       "  '428.00',\n",
       "  '423.00',\n",
       "  '427.00',\n",
       "  '-2.00',\n",
       "  '12,642'],\n",
       " ['109/08/17',\n",
       "  '34,607,731',\n",
       "  '14,930,831,216',\n",
       "  '427.00',\n",
       "  '435.00',\n",
       "  '425.50',\n",
       "  '435.00',\n",
       "  '+8.00',\n",
       "  '20,823'],\n",
       " ['109/08/18',\n",
       "  '45,504,160',\n",
       "  '19,824,413,320',\n",
       "  '440.00',\n",
       "  '440.50',\n",
       "  '432.00',\n",
       "  '433.00',\n",
       "  '-2.00',\n",
       "  '21,119'],\n",
       " ['109/08/19',\n",
       "  '31,486,800',\n",
       "  '13,574,970,200',\n",
       "  '436.00',\n",
       "  '436.50',\n",
       "  '427.50',\n",
       "  '427.50',\n",
       "  '-5.50',\n",
       "  '18,279'],\n",
       " ['109/08/20',\n",
       "  '75,155,235',\n",
       "  '31,353,886,930',\n",
       "  '427.00',\n",
       "  '427.50',\n",
       "  '401.00',\n",
       "  '415.00',\n",
       "  '-12.50',\n",
       "  '45,670'],\n",
       " ['109/08/21',\n",
       "  '41,956,467',\n",
       "  '17,770,610,338',\n",
       "  '421.50',\n",
       "  '427.00',\n",
       "  '420.00',\n",
       "  '424.50',\n",
       "  '+9.50',\n",
       "  '23,059'],\n",
       " ['109/08/24',\n",
       "  '49,199,406',\n",
       "  '21,139,093,710',\n",
       "  '427.50',\n",
       "  '434.50',\n",
       "  '425.00',\n",
       "  '428.00',\n",
       "  '+3.50',\n",
       "  '24,672'],\n",
       " ['109/08/25',\n",
       "  '37,024,899',\n",
       "  '16,076,146,369',\n",
       "  '433.50',\n",
       "  '436.00',\n",
       "  '430.50',\n",
       "  '434.50',\n",
       "  '+6.50',\n",
       "  '22,035'],\n",
       " ['109/08/26',\n",
       "  '41,406,340',\n",
       "  '18,169,230,108',\n",
       "  '435.50',\n",
       "  '442.00',\n",
       "  '435.00',\n",
       "  '442.00',\n",
       "  '+7.50',\n",
       "  '25,305'],\n",
       " ['109/08/27',\n",
       "  '57,206,712',\n",
       "  '25,658,355,402',\n",
       "  '448.00',\n",
       "  '453.50',\n",
       "  '444.00',\n",
       "  '444.00',\n",
       "  '+2.00',\n",
       "  '31,575'],\n",
       " ['109/08/28',\n",
       "  '57,039,210',\n",
       "  '24,868,453,700',\n",
       "  '440.00',\n",
       "  '440.50',\n",
       "  '431.00',\n",
       "  '435.00',\n",
       "  '-9.00',\n",
       "  '35,253'],\n",
       " ['109/08/31',\n",
       "  '88,569,538',\n",
       "  '38,106,113,563',\n",
       "  '437.00',\n",
       "  '439.50',\n",
       "  '426.50',\n",
       "  '426.50',\n",
       "  '-8.50',\n",
       "  '28,294']]"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_json['data']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>109/08/03</td>\n",
       "      <td>77,288,571</td>\n",
       "      <td>32,339,719,000</td>\n",
       "      <td>420.50</td>\n",
       "      <td>424.00</td>\n",
       "      <td>415.00</td>\n",
       "      <td>416.00</td>\n",
       "      <td>-9.50</td>\n",
       "      <td>43,360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>109/08/04</td>\n",
       "      <td>41,697,445</td>\n",
       "      <td>17,600,499,460</td>\n",
       "      <td>421.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>418.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>+9.50</td>\n",
       "      <td>22,250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>109/08/05</td>\n",
       "      <td>47,460,834</td>\n",
       "      <td>20,356,413,204</td>\n",
       "      <td>430.50</td>\n",
       "      <td>433.50</td>\n",
       "      <td>426.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>+3.50</td>\n",
       "      <td>24,715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>109/08/06</td>\n",
       "      <td>43,443,627</td>\n",
       "      <td>18,877,761,758</td>\n",
       "      <td>437.50</td>\n",
       "      <td>438.00</td>\n",
       "      <td>431.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>+6.00</td>\n",
       "      <td>22,414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>109/08/07</td>\n",
       "      <td>37,611,388</td>\n",
       "      <td>16,218,241,255</td>\n",
       "      <td>433.50</td>\n",
       "      <td>434.00</td>\n",
       "      <td>428.00</td>\n",
       "      <td>433.00</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>19,739</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>109/08/10</td>\n",
       "      <td>36,067,500</td>\n",
       "      <td>15,674,843,876</td>\n",
       "      <td>427.50</td>\n",
       "      <td>437.50</td>\n",
       "      <td>427.50</td>\n",
       "      <td>435.50</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>21,342</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>109/08/11</td>\n",
       "      <td>34,545,313</td>\n",
       "      <td>14,918,017,903</td>\n",
       "      <td>432.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>-6.50</td>\n",
       "      <td>20,297</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>109/08/12</td>\n",
       "      <td>53,980,474</td>\n",
       "      <td>22,721,731,886</td>\n",
       "      <td>422.00</td>\n",
       "      <td>423.50</td>\n",
       "      <td>419.00</td>\n",
       "      <td>419.00</td>\n",
       "      <td>-10.00</td>\n",
       "      <td>32,761</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>109/08/13</td>\n",
       "      <td>45,669,335</td>\n",
       "      <td>19,514,322,038</td>\n",
       "      <td>428.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>424.50</td>\n",
       "      <td>429.00</td>\n",
       "      <td>+10.00</td>\n",
       "      <td>21,499</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>109/08/14</td>\n",
       "      <td>24,259,947</td>\n",
       "      <td>10,332,447,763</td>\n",
       "      <td>424.00</td>\n",
       "      <td>428.00</td>\n",
       "      <td>423.00</td>\n",
       "      <td>427.00</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>12,642</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>109/08/17</td>\n",
       "      <td>34,607,731</td>\n",
       "      <td>14,930,831,216</td>\n",
       "      <td>427.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>425.50</td>\n",
       "      <td>435.00</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>20,823</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>109/08/18</td>\n",
       "      <td>45,504,160</td>\n",
       "      <td>19,824,413,320</td>\n",
       "      <td>440.00</td>\n",
       "      <td>440.50</td>\n",
       "      <td>432.00</td>\n",
       "      <td>433.00</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>21,119</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>109/08/19</td>\n",
       "      <td>31,486,800</td>\n",
       "      <td>13,574,970,200</td>\n",
       "      <td>436.00</td>\n",
       "      <td>436.50</td>\n",
       "      <td>427.50</td>\n",
       "      <td>427.50</td>\n",
       "      <td>-5.50</td>\n",
       "      <td>18,279</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>109/08/20</td>\n",
       "      <td>75,155,235</td>\n",
       "      <td>31,353,886,930</td>\n",
       "      <td>427.00</td>\n",
       "      <td>427.50</td>\n",
       "      <td>401.00</td>\n",
       "      <td>415.00</td>\n",
       "      <td>-12.50</td>\n",
       "      <td>45,670</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>109/08/21</td>\n",
       "      <td>41,956,467</td>\n",
       "      <td>17,770,610,338</td>\n",
       "      <td>421.50</td>\n",
       "      <td>427.00</td>\n",
       "      <td>420.00</td>\n",
       "      <td>424.50</td>\n",
       "      <td>+9.50</td>\n",
       "      <td>23,059</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>109/08/24</td>\n",
       "      <td>49,199,406</td>\n",
       "      <td>21,139,093,710</td>\n",
       "      <td>427.50</td>\n",
       "      <td>434.50</td>\n",
       "      <td>425.00</td>\n",
       "      <td>428.00</td>\n",
       "      <td>+3.50</td>\n",
       "      <td>24,672</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>109/08/25</td>\n",
       "      <td>37,024,899</td>\n",
       "      <td>16,076,146,369</td>\n",
       "      <td>433.50</td>\n",
       "      <td>436.00</td>\n",
       "      <td>430.50</td>\n",
       "      <td>434.50</td>\n",
       "      <td>+6.50</td>\n",
       "      <td>22,035</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>109/08/26</td>\n",
       "      <td>41,406,340</td>\n",
       "      <td>18,169,230,108</td>\n",
       "      <td>435.50</td>\n",
       "      <td>442.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>442.00</td>\n",
       "      <td>+7.50</td>\n",
       "      <td>25,305</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>109/08/27</td>\n",
       "      <td>57,206,712</td>\n",
       "      <td>25,658,355,402</td>\n",
       "      <td>448.00</td>\n",
       "      <td>453.50</td>\n",
       "      <td>444.00</td>\n",
       "      <td>444.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>31,575</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>109/08/28</td>\n",
       "      <td>57,039,210</td>\n",
       "      <td>24,868,453,700</td>\n",
       "      <td>440.00</td>\n",
       "      <td>440.50</td>\n",
       "      <td>431.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>-9.00</td>\n",
       "      <td>35,253</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>20</th>\n",
       "      <td>109/08/31</td>\n",
       "      <td>88,569,538</td>\n",
       "      <td>38,106,113,563</td>\n",
       "      <td>437.00</td>\n",
       "      <td>439.50</td>\n",
       "      <td>426.50</td>\n",
       "      <td>426.50</td>\n",
       "      <td>-8.50</td>\n",
       "      <td>28,294</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "            0           1               2       3       4       5       6  \\\n",
       "0   109/08/03  77,288,571  32,339,719,000  420.50  424.00  415.00  416.00   \n",
       "1   109/08/04  41,697,445  17,600,499,460  421.50  425.50  418.50  425.50   \n",
       "2   109/08/05  47,460,834  20,356,413,204  430.50  433.50  426.00  429.00   \n",
       "3   109/08/06  43,443,627  18,877,761,758  437.50  438.00  431.00  435.00   \n",
       "4   109/08/07  37,611,388  16,218,241,255  433.50  434.00  428.00  433.00   \n",
       "5   109/08/10  36,067,500  15,674,843,876  427.50  437.50  427.50  435.50   \n",
       "6   109/08/11  34,545,313  14,918,017,903  432.00  435.00  429.00  429.00   \n",
       "7   109/08/12  53,980,474  22,721,731,886  422.00  423.50  419.00  419.00   \n",
       "8   109/08/13  45,669,335  19,514,322,038  428.00  429.00  424.50  429.00   \n",
       "9   109/08/14  24,259,947  10,332,447,763  424.00  428.00  423.00  427.00   \n",
       "10  109/08/17  34,607,731  14,930,831,216  427.00  435.00  425.50  435.00   \n",
       "11  109/08/18  45,504,160  19,824,413,320  440.00  440.50  432.00  433.00   \n",
       "12  109/08/19  31,486,800  13,574,970,200  436.00  436.50  427.50  427.50   \n",
       "13  109/08/20  75,155,235  31,353,886,930  427.00  427.50  401.00  415.00   \n",
       "14  109/08/21  41,956,467  17,770,610,338  421.50  427.00  420.00  424.50   \n",
       "15  109/08/24  49,199,406  21,139,093,710  427.50  434.50  425.00  428.00   \n",
       "16  109/08/25  37,024,899  16,076,146,369  433.50  436.00  430.50  434.50   \n",
       "17  109/08/26  41,406,340  18,169,230,108  435.50  442.00  435.00  442.00   \n",
       "18  109/08/27  57,206,712  25,658,355,402  448.00  453.50  444.00  444.00   \n",
       "19  109/08/28  57,039,210  24,868,453,700  440.00  440.50  431.00  435.00   \n",
       "20  109/08/31  88,569,538  38,106,113,563  437.00  439.50  426.50  426.50   \n",
       "\n",
       "         7       8  \n",
       "0    -9.50  43,360  \n",
       "1    +9.50  22,250  \n",
       "2    +3.50  24,715  \n",
       "3    +6.00  22,414  \n",
       "4    -2.00  19,739  \n",
       "5    +2.50  21,342  \n",
       "6    -6.50  20,297  \n",
       "7   -10.00  32,761  \n",
       "8   +10.00  21,499  \n",
       "9    -2.00  12,642  \n",
       "10   +8.00  20,823  \n",
       "11   -2.00  21,119  \n",
       "12   -5.50  18,279  \n",
       "13  -12.50  45,670  \n",
       "14   +9.50  23,059  \n",
       "15   +3.50  24,672  \n",
       "16   +6.50  22,035  \n",
       "17   +7.50  25,305  \n",
       "18   +2.00  31,575  \n",
       "19   -9.00  35,253  \n",
       "20   -8.50  28,294  "
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "pd.DataFrame.from_dict(stock_json['data'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>4</th>\n",
       "      <th>5</th>\n",
       "      <th>6</th>\n",
       "      <th>7</th>\n",
       "      <th>8</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>109/08/03</td>\n",
       "      <td>77,288,571</td>\n",
       "      <td>32,339,719,000</td>\n",
       "      <td>420.50</td>\n",
       "      <td>424.00</td>\n",
       "      <td>415.00</td>\n",
       "      <td>416.00</td>\n",
       "      <td>-9.50</td>\n",
       "      <td>43,360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>109/08/04</td>\n",
       "      <td>41,697,445</td>\n",
       "      <td>17,600,499,460</td>\n",
       "      <td>421.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>418.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>+9.50</td>\n",
       "      <td>22,250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>109/08/05</td>\n",
       "      <td>47,460,834</td>\n",
       "      <td>20,356,413,204</td>\n",
       "      <td>430.50</td>\n",
       "      <td>433.50</td>\n",
       "      <td>426.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>+3.50</td>\n",
       "      <td>24,715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>109/08/06</td>\n",
       "      <td>43,443,627</td>\n",
       "      <td>18,877,761,758</td>\n",
       "      <td>437.50</td>\n",
       "      <td>438.00</td>\n",
       "      <td>431.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>+6.00</td>\n",
       "      <td>22,414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>109/08/07</td>\n",
       "      <td>37,611,388</td>\n",
       "      <td>16,218,241,255</td>\n",
       "      <td>433.50</td>\n",
       "      <td>434.00</td>\n",
       "      <td>428.00</td>\n",
       "      <td>433.00</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>19,739</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "           0           1               2       3       4       5       6  \\\n",
       "0  109/08/03  77,288,571  32,339,719,000  420.50  424.00  415.00  416.00   \n",
       "1  109/08/04  41,697,445  17,600,499,460  421.50  425.50  418.50  425.50   \n",
       "2  109/08/05  47,460,834  20,356,413,204  430.50  433.50  426.00  429.00   \n",
       "3  109/08/06  43,443,627  18,877,761,758  437.50  438.00  431.00  435.00   \n",
       "4  109/08/07  37,611,388  16,218,241,255  433.50  434.00  428.00  433.00   \n",
       "\n",
       "       7       8  \n",
       "0  -9.50  43,360  \n",
       "1  +9.50  22,250  \n",
       "2  +3.50  24,715  \n",
       "3  +6.00  22,414  \n",
       "4  -2.00  19,739  "
      ]
     },
     "execution_count": 9,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_df = pd.DataFrame.from_dict(stock_json['data'])\n",
    "stock_df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['日期', '成交股數', '成交金額', '開盤價', '最高價', '最低價', '收盤價', '漲跌價差', '成交筆數']"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_json['fields']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock_df.columns = stock_json['fields']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>109/08/03</td>\n",
       "      <td>77,288,571</td>\n",
       "      <td>32,339,719,000</td>\n",
       "      <td>420.50</td>\n",
       "      <td>424.00</td>\n",
       "      <td>415.00</td>\n",
       "      <td>416.00</td>\n",
       "      <td>-9.50</td>\n",
       "      <td>43,360</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>109/08/04</td>\n",
       "      <td>41,697,445</td>\n",
       "      <td>17,600,499,460</td>\n",
       "      <td>421.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>418.50</td>\n",
       "      <td>425.50</td>\n",
       "      <td>+9.50</td>\n",
       "      <td>22,250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>109/08/05</td>\n",
       "      <td>47,460,834</td>\n",
       "      <td>20,356,413,204</td>\n",
       "      <td>430.50</td>\n",
       "      <td>433.50</td>\n",
       "      <td>426.00</td>\n",
       "      <td>429.00</td>\n",
       "      <td>+3.50</td>\n",
       "      <td>24,715</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>109/08/06</td>\n",
       "      <td>43,443,627</td>\n",
       "      <td>18,877,761,758</td>\n",
       "      <td>437.50</td>\n",
       "      <td>438.00</td>\n",
       "      <td>431.00</td>\n",
       "      <td>435.00</td>\n",
       "      <td>+6.00</td>\n",
       "      <td>22,414</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>109/08/07</td>\n",
       "      <td>37,611,388</td>\n",
       "      <td>16,218,241,255</td>\n",
       "      <td>433.50</td>\n",
       "      <td>434.00</td>\n",
       "      <td>428.00</td>\n",
       "      <td>433.00</td>\n",
       "      <td>-2.00</td>\n",
       "      <td>19,739</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          日期        成交股數            成交金額     開盤價     最高價     最低價     收盤價  \\\n",
       "0  109/08/03  77,288,571  32,339,719,000  420.50  424.00  415.00  416.00   \n",
       "1  109/08/04  41,697,445  17,600,499,460  421.50  425.50  418.50  425.50   \n",
       "2  109/08/05  47,460,834  20,356,413,204  430.50  433.50  426.00  429.00   \n",
       "3  109/08/06  43,443,627  18,877,761,758  437.50  438.00  431.00  435.00   \n",
       "4  109/08/07  37,611,388  16,218,241,255  433.50  434.00  428.00  433.00   \n",
       "\n",
       "    漲跌價差    成交筆數  \n",
       "0  -9.50  43,360  \n",
       "1  +9.50  22,250  \n",
       "2  +3.50  24,715  \n",
       "3  +6.00  22,414  \n",
       "4  -2.00  19,739  "
      ]
     },
     "execution_count": 12,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock_df.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 2: 下載歷年台股個股成交資料"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [],
   "source": [
    "url = \"https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=20200801&stockNo=2330\""
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {},
   "outputs": [],
   "source": [
    "month_list = pd.date_range('2020-06-01','2020-08-01', freq='MS').strftime(\"%Y%m%d\").tolist()    "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "20200601\n",
      "20200701\n",
      "20200801\n"
     ]
    }
   ],
   "source": [
    "for month in month_list:\n",
    "    print(month) "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Empty DataFrame\n",
       "Columns: []\n",
       "Index: []"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df = pd.DataFrame()\n",
    "df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {},
   "outputs": [],
   "source": [
    "for month in month_list:\n",
    "    url = \"https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=\"+ month + \"&stockNo=2330\"\n",
    "    res = r.get(url)\n",
    "    stock_json = res.json()\n",
    "    stock_df = pd.DataFrame.from_dict(stock_json['data'])\n",
    "    df = df.append(stock_df, ignore_index = True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.columns = ['日期', '成交股數', '成交金額', '開盤價', '最高價', '最低價', '收盤價', '漲跌價差', '成交筆數']"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>109/06/01</td>\n",
       "      <td>37,936,214</td>\n",
       "      <td>11,205,227,094</td>\n",
       "      <td>294.00</td>\n",
       "      <td>296.50</td>\n",
       "      <td>293.50</td>\n",
       "      <td>295.50</td>\n",
       "      <td>+3.50</td>\n",
       "      <td>15,502</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>109/06/02</td>\n",
       "      <td>26,663,587</td>\n",
       "      <td>7,908,476,089</td>\n",
       "      <td>296.00</td>\n",
       "      <td>297.50</td>\n",
       "      <td>296.00</td>\n",
       "      <td>296.50</td>\n",
       "      <td>+1.00</td>\n",
       "      <td>9,743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>109/06/03</td>\n",
       "      <td>67,894,337</td>\n",
       "      <td>20,354,971,677</td>\n",
       "      <td>300.00</td>\n",
       "      <td>301.00</td>\n",
       "      <td>298.00</td>\n",
       "      <td>301.00</td>\n",
       "      <td>+4.50</td>\n",
       "      <td>33,062</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>109/06/04</td>\n",
       "      <td>47,225,322</td>\n",
       "      <td>14,414,983,532</td>\n",
       "      <td>305.00</td>\n",
       "      <td>306.00</td>\n",
       "      <td>304.00</td>\n",
       "      <td>306.00</td>\n",
       "      <td>+5.00</td>\n",
       "      <td>24,482</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>109/06/05</td>\n",
       "      <td>44,077,262</td>\n",
       "      <td>13,655,618,646</td>\n",
       "      <td>308.50</td>\n",
       "      <td>312.00</td>\n",
       "      <td>308.00</td>\n",
       "      <td>311.50</td>\n",
       "      <td>+5.50</td>\n",
       "      <td>24,096</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          日期        成交股數            成交金額     開盤價     最高價     最低價     收盤價  \\\n",
       "0  109/06/01  37,936,214  11,205,227,094  294.00  296.50  293.50  295.50   \n",
       "1  109/06/02  26,663,587   7,908,476,089  296.00  297.50  296.00  296.50   \n",
       "2  109/06/03  67,894,337  20,354,971,677  300.00  301.00  298.00  301.00   \n",
       "3  109/06/04  47,225,322  14,414,983,532  305.00  306.00  304.00  306.00   \n",
       "4  109/06/05  44,077,262  13,655,618,646  308.50  312.00  308.00  311.50   \n",
       "\n",
       "    漲跌價差    成交筆數  \n",
       "0  +3.50  15,502  \n",
       "1  +1.00   9,743  \n",
       "2  +4.50  33,062  \n",
       "3  +5.00  24,482  \n",
       "4  +5.50  24,096  "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {},
   "outputs": [],
   "source": [
    "def get_stock_data(start_year, start_month, end_year, end_month, stock_code):\n",
    "    start_date = str(date(start_year, start_month, 1))\n",
    "    end_date = str(date(end_year, end_month, 1))\n",
    "    month_list = pd.date_range(start_date, end_date, freq='MS').strftime(\"%Y%m%d\").tolist()\n",
    "    \n",
    "    df = pd.DataFrame()\n",
    "    for month in month_list:\n",
    "        url = \"https://www.twse.com.tw/exchangeReport/STOCK_DAY?response=json&date=\"+ month + \"&stockNo=\" + str(stock_code)\n",
    "        res = r.get(url)\n",
    "        stock_json = res.json()\n",
    "        stock_df = pd.DataFrame.from_dict(stock_json['data'])\n",
    "        df = df.append(stock_df, ignore_index = True)\n",
    "    \n",
    "    df.columns = ['日期', '成交股數', '成交金額', '開盤價', '最高價', '最低價', '收盤價', '漲跌價差', '成交筆數']\n",
    "    return df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>108/06/03</td>\n",
       "      <td>36,687,092</td>\n",
       "      <td>8,651,389,851</td>\n",
       "      <td>235.50</td>\n",
       "      <td>238.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>8,857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>108/06/04</td>\n",
       "      <td>24,443,428</td>\n",
       "      <td>5,745,045,809</td>\n",
       "      <td>237.50</td>\n",
       "      <td>238.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>-5.00</td>\n",
       "      <td>11,779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>108/06/05</td>\n",
       "      <td>35,901,584</td>\n",
       "      <td>8,461,930,934</td>\n",
       "      <td>238.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>234.00</td>\n",
       "      <td>235.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>12,064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>108/06/06</td>\n",
       "      <td>34,651,731</td>\n",
       "      <td>8,008,768,323</td>\n",
       "      <td>231.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>229.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>14,723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>108/06/10</td>\n",
       "      <td>35,521,888</td>\n",
       "      <td>8,442,986,620</td>\n",
       "      <td>237.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>234.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>15,588</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>...</th>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "      <td>...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>58</th>\n",
       "      <td>108/08/26</td>\n",
       "      <td>31,740,620</td>\n",
       "      <td>7,910,873,500</td>\n",
       "      <td>249.00</td>\n",
       "      <td>250.50</td>\n",
       "      <td>248.50</td>\n",
       "      <td>248.50</td>\n",
       "      <td>-5.50</td>\n",
       "      <td>13,388</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>59</th>\n",
       "      <td>108/08/27</td>\n",
       "      <td>53,664,951</td>\n",
       "      <td>13,410,582,151</td>\n",
       "      <td>250.50</td>\n",
       "      <td>251.00</td>\n",
       "      <td>248.50</td>\n",
       "      <td>250.00</td>\n",
       "      <td>+1.50</td>\n",
       "      <td>8,939</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>60</th>\n",
       "      <td>108/08/28</td>\n",
       "      <td>15,280,882</td>\n",
       "      <td>3,852,096,070</td>\n",
       "      <td>250.50</td>\n",
       "      <td>253.00</td>\n",
       "      <td>250.50</td>\n",
       "      <td>252.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>6,829</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>61</th>\n",
       "      <td>108/08/29</td>\n",
       "      <td>20,085,767</td>\n",
       "      <td>5,078,703,588</td>\n",
       "      <td>253.00</td>\n",
       "      <td>254.00</td>\n",
       "      <td>251.00</td>\n",
       "      <td>254.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>6,596</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>62</th>\n",
       "      <td>108/08/30</td>\n",
       "      <td>35,299,201</td>\n",
       "      <td>9,092,482,858</td>\n",
       "      <td>256.50</td>\n",
       "      <td>259.00</td>\n",
       "      <td>256.00</td>\n",
       "      <td>259.00</td>\n",
       "      <td>+5.00</td>\n",
       "      <td>13,703</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>63 rows × 9 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "           日期        成交股數            成交金額     開盤價     最高價     最低價     收盤價  \\\n",
       "0   108/06/03  36,687,092   8,651,389,851  235.50  238.50  232.00  238.00   \n",
       "1   108/06/04  24,443,428   5,745,045,809  237.50  238.00  233.00  233.00   \n",
       "2   108/06/05  35,901,584   8,461,930,934  238.00  238.00  234.00  235.00   \n",
       "3   108/06/06  34,651,731   8,008,768,323  231.50  232.00  229.50  232.00   \n",
       "4   108/06/10  35,521,888   8,442,986,620  237.50  240.00  234.50  240.00   \n",
       "..        ...         ...             ...     ...     ...     ...     ...   \n",
       "58  108/08/26  31,740,620   7,910,873,500  249.00  250.50  248.50  248.50   \n",
       "59  108/08/27  53,664,951  13,410,582,151  250.50  251.00  248.50  250.00   \n",
       "60  108/08/28  15,280,882   3,852,096,070  250.50  253.00  250.50  252.00   \n",
       "61  108/08/29  20,085,767   5,078,703,588  253.00  254.00  251.00  254.00   \n",
       "62  108/08/30  35,299,201   9,092,482,858  256.50  259.00  256.00  259.00   \n",
       "\n",
       "     漲跌價差    成交筆數  \n",
       "0   +2.50   8,857  \n",
       "1   -5.00  11,779  \n",
       "2   +2.00  12,064  \n",
       "3   -3.00  14,723  \n",
       "4   +8.00  15,588  \n",
       "..    ...     ...  \n",
       "58  -5.50  13,388  \n",
       "59  +1.50   8,939  \n",
       "60  +2.00   6,829  \n",
       "61  +2.00   6,596  \n",
       "62  +5.00  13,703  \n",
       "\n",
       "[63 rows x 9 columns]"
      ]
     },
     "execution_count": 21,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "get_stock_data(start_year = 2019, start_month = 6, end_year = 2019, end_month = 8, stock_code = 2330)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 3: 將下載的個股資料從字串(string)轉型成日期(datetime)及浮點數(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>108/06/03</td>\n",
       "      <td>36,687,092</td>\n",
       "      <td>8,651,389,851</td>\n",
       "      <td>235.50</td>\n",
       "      <td>238.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>8,857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>108/06/04</td>\n",
       "      <td>24,443,428</td>\n",
       "      <td>5,745,045,809</td>\n",
       "      <td>237.50</td>\n",
       "      <td>238.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>-5.00</td>\n",
       "      <td>11,779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>108/06/05</td>\n",
       "      <td>35,901,584</td>\n",
       "      <td>8,461,930,934</td>\n",
       "      <td>238.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>234.00</td>\n",
       "      <td>235.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>12,064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>108/06/06</td>\n",
       "      <td>34,651,731</td>\n",
       "      <td>8,008,768,323</td>\n",
       "      <td>231.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>229.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>14,723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>108/06/10</td>\n",
       "      <td>35,521,888</td>\n",
       "      <td>8,442,986,620</td>\n",
       "      <td>237.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>234.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>15,588</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          日期        成交股數           成交金額     開盤價     最高價     最低價     收盤價  \\\n",
       "0  108/06/03  36,687,092  8,651,389,851  235.50  238.50  232.00  238.00   \n",
       "1  108/06/04  24,443,428  5,745,045,809  237.50  238.00  233.00  233.00   \n",
       "2  108/06/05  35,901,584  8,461,930,934  238.00  238.00  234.00  235.00   \n",
       "3  108/06/06  34,651,731  8,008,768,323  231.50  232.00  229.50  232.00   \n",
       "4  108/06/10  35,521,888  8,442,986,620  237.50  240.00  234.50  240.00   \n",
       "\n",
       "    漲跌價差    成交筆數  \n",
       "0  +2.50   8,857  \n",
       "1  -5.00  11,779  \n",
       "2  +2.00  12,064  \n",
       "3  -3.00  14,723  \n",
       "4  +8.00  15,588  "
      ]
     },
     "execution_count": 22,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock = get_stock_data(start_year = 2019, start_month = 6, end_year = 2019, end_month = 8, stock_code = 2330)\n",
    "stock.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 把日期從字串(string)換成時間(datetime),並將民國年換成西元年"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-06-03 00:00:00</td>\n",
       "      <td>36,687,092</td>\n",
       "      <td>8,651,389,851</td>\n",
       "      <td>235.50</td>\n",
       "      <td>238.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>8,857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-06-04 00:00:00</td>\n",
       "      <td>24,443,428</td>\n",
       "      <td>5,745,045,809</td>\n",
       "      <td>237.50</td>\n",
       "      <td>238.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>233.00</td>\n",
       "      <td>-5.00</td>\n",
       "      <td>11,779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-06-05 00:00:00</td>\n",
       "      <td>35,901,584</td>\n",
       "      <td>8,461,930,934</td>\n",
       "      <td>238.00</td>\n",
       "      <td>238.00</td>\n",
       "      <td>234.00</td>\n",
       "      <td>235.00</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>12,064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-06-06 00:00:00</td>\n",
       "      <td>34,651,731</td>\n",
       "      <td>8,008,768,323</td>\n",
       "      <td>231.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>229.50</td>\n",
       "      <td>232.00</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>14,723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-06-10 00:00:00</td>\n",
       "      <td>35,521,888</td>\n",
       "      <td>8,442,986,620</td>\n",
       "      <td>237.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>234.50</td>\n",
       "      <td>240.00</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>15,588</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2019-06-11 00:00:00</td>\n",
       "      <td>34,691,670</td>\n",
       "      <td>8,448,805,962</td>\n",
       "      <td>240.00</td>\n",
       "      <td>246.00</td>\n",
       "      <td>239.00</td>\n",
       "      <td>244.50</td>\n",
       "      <td>+4.50</td>\n",
       "      <td>13,157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2019-06-12 00:00:00</td>\n",
       "      <td>30,409,556</td>\n",
       "      <td>7,469,805,086</td>\n",
       "      <td>244.50</td>\n",
       "      <td>247.50</td>\n",
       "      <td>243.00</td>\n",
       "      <td>246.00</td>\n",
       "      <td>+1.50</td>\n",
       "      <td>11,457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2019-06-13 00:00:00</td>\n",
       "      <td>33,731,724</td>\n",
       "      <td>8,136,137,708</td>\n",
       "      <td>242.50</td>\n",
       "      <td>244.00</td>\n",
       "      <td>240.00</td>\n",
       "      <td>240.00</td>\n",
       "      <td>-6.00</td>\n",
       "      <td>13,552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2019-06-14 00:00:00</td>\n",
       "      <td>35,403,556</td>\n",
       "      <td>8,396,819,832</td>\n",
       "      <td>238.50</td>\n",
       "      <td>239.50</td>\n",
       "      <td>236.00</td>\n",
       "      <td>236.00</td>\n",
       "      <td>-4.00</td>\n",
       "      <td>14,911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2019-06-17 00:00:00</td>\n",
       "      <td>51,692,012</td>\n",
       "      <td>12,043,369,475</td>\n",
       "      <td>231.50</td>\n",
       "      <td>235.00</td>\n",
       "      <td>230.50</td>\n",
       "      <td>233.00</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>20,943</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    日期        成交股數            成交金額     開盤價     最高價     最低價  \\\n",
       "0  2019-06-03 00:00:00  36,687,092   8,651,389,851  235.50  238.50  232.00   \n",
       "1  2019-06-04 00:00:00  24,443,428   5,745,045,809  237.50  238.00  233.00   \n",
       "2  2019-06-05 00:00:00  35,901,584   8,461,930,934  238.00  238.00  234.00   \n",
       "3  2019-06-06 00:00:00  34,651,731   8,008,768,323  231.50  232.00  229.50   \n",
       "4  2019-06-10 00:00:00  35,521,888   8,442,986,620  237.50  240.00  234.50   \n",
       "5  2019-06-11 00:00:00  34,691,670   8,448,805,962  240.00  246.00  239.00   \n",
       "6  2019-06-12 00:00:00  30,409,556   7,469,805,086  244.50  247.50  243.00   \n",
       "7  2019-06-13 00:00:00  33,731,724   8,136,137,708  242.50  244.00  240.00   \n",
       "8  2019-06-14 00:00:00  35,403,556   8,396,819,832  238.50  239.50  236.00   \n",
       "9  2019-06-17 00:00:00  51,692,012  12,043,369,475  231.50  235.00  230.50   \n",
       "\n",
       "      收盤價   漲跌價差    成交筆數  \n",
       "0  238.00  +2.50   8,857  \n",
       "1  233.00  -5.00  11,779  \n",
       "2  235.00  +2.00  12,064  \n",
       "3  232.00  -3.00  14,723  \n",
       "4  240.00  +8.00  15,588  \n",
       "5  244.50  +4.50  13,157  \n",
       "6  246.00  +1.50  11,457  \n",
       "7  240.00  -6.00  13,552  \n",
       "8  236.00  -4.00  14,911  \n",
       "9  233.00  -3.00  20,943  "
      ]
     },
     "execution_count": 23,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for row in range(stock.shape[0]):\n",
    "    date2 = stock.iloc[row,0].split('/')\n",
    "    stock.iloc[row, 0] = datetime(int(date2[0]) + 1911, int(date2[1]), int(date2[2]))\n",
    "        \n",
    "stock.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "### 把\"成交股數\" \"成交金額\" \"開盤價\", \"最高價\", \"最低價\", \"收盤價\" \"漲跌價差\" \"成交筆數\"帶有逗號的字串(string)換成浮點數(float)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-06-03 00:00:00</td>\n",
       "      <td>3.66871e+07</td>\n",
       "      <td>8.65139e+09</td>\n",
       "      <td>235.5</td>\n",
       "      <td>238.5</td>\n",
       "      <td>232</td>\n",
       "      <td>238</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>8857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-06-04 00:00:00</td>\n",
       "      <td>2.44434e+07</td>\n",
       "      <td>5.74505e+09</td>\n",
       "      <td>237.5</td>\n",
       "      <td>238</td>\n",
       "      <td>233</td>\n",
       "      <td>233</td>\n",
       "      <td>-5.00</td>\n",
       "      <td>11779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-06-05 00:00:00</td>\n",
       "      <td>3.59016e+07</td>\n",
       "      <td>8.46193e+09</td>\n",
       "      <td>238</td>\n",
       "      <td>238</td>\n",
       "      <td>234</td>\n",
       "      <td>235</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>12064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-06-06 00:00:00</td>\n",
       "      <td>3.46517e+07</td>\n",
       "      <td>8.00877e+09</td>\n",
       "      <td>231.5</td>\n",
       "      <td>232</td>\n",
       "      <td>229.5</td>\n",
       "      <td>232</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>14723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-06-10 00:00:00</td>\n",
       "      <td>3.55219e+07</td>\n",
       "      <td>8.44299e+09</td>\n",
       "      <td>237.5</td>\n",
       "      <td>240</td>\n",
       "      <td>234.5</td>\n",
       "      <td>240</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>15588</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2019-06-11 00:00:00</td>\n",
       "      <td>3.46917e+07</td>\n",
       "      <td>8.44881e+09</td>\n",
       "      <td>240</td>\n",
       "      <td>246</td>\n",
       "      <td>239</td>\n",
       "      <td>244.5</td>\n",
       "      <td>+4.50</td>\n",
       "      <td>13157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2019-06-12 00:00:00</td>\n",
       "      <td>3.04096e+07</td>\n",
       "      <td>7.46981e+09</td>\n",
       "      <td>244.5</td>\n",
       "      <td>247.5</td>\n",
       "      <td>243</td>\n",
       "      <td>246</td>\n",
       "      <td>+1.50</td>\n",
       "      <td>11457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2019-06-13 00:00:00</td>\n",
       "      <td>3.37317e+07</td>\n",
       "      <td>8.13614e+09</td>\n",
       "      <td>242.5</td>\n",
       "      <td>244</td>\n",
       "      <td>240</td>\n",
       "      <td>240</td>\n",
       "      <td>-6.00</td>\n",
       "      <td>13552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2019-06-14 00:00:00</td>\n",
       "      <td>3.54036e+07</td>\n",
       "      <td>8.39682e+09</td>\n",
       "      <td>238.5</td>\n",
       "      <td>239.5</td>\n",
       "      <td>236</td>\n",
       "      <td>236</td>\n",
       "      <td>-4.00</td>\n",
       "      <td>14911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2019-06-17 00:00:00</td>\n",
       "      <td>5.1692e+07</td>\n",
       "      <td>1.20434e+10</td>\n",
       "      <td>231.5</td>\n",
       "      <td>235</td>\n",
       "      <td>230.5</td>\n",
       "      <td>233</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>20943</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    日期         成交股數         成交金額    開盤價    最高價    最低價    收盤價  \\\n",
       "0  2019-06-03 00:00:00  3.66871e+07  8.65139e+09  235.5  238.5    232    238   \n",
       "1  2019-06-04 00:00:00  2.44434e+07  5.74505e+09  237.5    238    233    233   \n",
       "2  2019-06-05 00:00:00  3.59016e+07  8.46193e+09    238    238    234    235   \n",
       "3  2019-06-06 00:00:00  3.46517e+07  8.00877e+09  231.5    232  229.5    232   \n",
       "4  2019-06-10 00:00:00  3.55219e+07  8.44299e+09  237.5    240  234.5    240   \n",
       "5  2019-06-11 00:00:00  3.46917e+07  8.44881e+09    240    246    239  244.5   \n",
       "6  2019-06-12 00:00:00  3.04096e+07  7.46981e+09  244.5  247.5    243    246   \n",
       "7  2019-06-13 00:00:00  3.37317e+07  8.13614e+09  242.5    244    240    240   \n",
       "8  2019-06-14 00:00:00  3.54036e+07  8.39682e+09  238.5  239.5    236    236   \n",
       "9  2019-06-17 00:00:00   5.1692e+07  1.20434e+10  231.5    235  230.5    233   \n",
       "\n",
       "    漲跌價差   成交筆數  \n",
       "0  +2.50   8857  \n",
       "1  -5.00  11779  \n",
       "2  +2.00  12064  \n",
       "3  -3.00  14723  \n",
       "4  +8.00  15588  \n",
       "5  +4.50  13157  \n",
       "6  +1.50  11457  \n",
       "7  -6.00  13552  \n",
       "8  -4.00  14911  \n",
       "9  -3.00  20943  "
      ]
     },
     "execution_count": 26,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for col in [1, 2, 3, 4, 5, 6, 8]:\n",
    "    for row in range(stock.shape[0]):\n",
    "        stock.iloc[row, col] = float(stock.iloc[row,col].replace(',', ''))\n",
    "        \n",
    "stock.head(10)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 4: 將下載的個股資料另存成csv檔"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock.to_csv(\"2330.csv\")"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# Part 5: 畫出下載個股的走勢圖"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {},
   "outputs": [],
   "source": [
    "stock2 = stock[:10]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>日期</th>\n",
       "      <th>成交股數</th>\n",
       "      <th>成交金額</th>\n",
       "      <th>開盤價</th>\n",
       "      <th>最高價</th>\n",
       "      <th>最低價</th>\n",
       "      <th>收盤價</th>\n",
       "      <th>漲跌價差</th>\n",
       "      <th>成交筆數</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2019-06-03 00:00:00</td>\n",
       "      <td>3.66871e+07</td>\n",
       "      <td>8.65139e+09</td>\n",
       "      <td>235.5</td>\n",
       "      <td>238.5</td>\n",
       "      <td>232</td>\n",
       "      <td>238</td>\n",
       "      <td>+2.50</td>\n",
       "      <td>8857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2019-06-04 00:00:00</td>\n",
       "      <td>2.44434e+07</td>\n",
       "      <td>5.74505e+09</td>\n",
       "      <td>237.5</td>\n",
       "      <td>238</td>\n",
       "      <td>233</td>\n",
       "      <td>233</td>\n",
       "      <td>-5.00</td>\n",
       "      <td>11779</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2019-06-05 00:00:00</td>\n",
       "      <td>3.59016e+07</td>\n",
       "      <td>8.46193e+09</td>\n",
       "      <td>238</td>\n",
       "      <td>238</td>\n",
       "      <td>234</td>\n",
       "      <td>235</td>\n",
       "      <td>+2.00</td>\n",
       "      <td>12064</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2019-06-06 00:00:00</td>\n",
       "      <td>3.46517e+07</td>\n",
       "      <td>8.00877e+09</td>\n",
       "      <td>231.5</td>\n",
       "      <td>232</td>\n",
       "      <td>229.5</td>\n",
       "      <td>232</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>14723</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2019-06-10 00:00:00</td>\n",
       "      <td>3.55219e+07</td>\n",
       "      <td>8.44299e+09</td>\n",
       "      <td>237.5</td>\n",
       "      <td>240</td>\n",
       "      <td>234.5</td>\n",
       "      <td>240</td>\n",
       "      <td>+8.00</td>\n",
       "      <td>15588</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2019-06-11 00:00:00</td>\n",
       "      <td>3.46917e+07</td>\n",
       "      <td>8.44881e+09</td>\n",
       "      <td>240</td>\n",
       "      <td>246</td>\n",
       "      <td>239</td>\n",
       "      <td>244.5</td>\n",
       "      <td>+4.50</td>\n",
       "      <td>13157</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2019-06-12 00:00:00</td>\n",
       "      <td>3.04096e+07</td>\n",
       "      <td>7.46981e+09</td>\n",
       "      <td>244.5</td>\n",
       "      <td>247.5</td>\n",
       "      <td>243</td>\n",
       "      <td>246</td>\n",
       "      <td>+1.50</td>\n",
       "      <td>11457</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2019-06-13 00:00:00</td>\n",
       "      <td>3.37317e+07</td>\n",
       "      <td>8.13614e+09</td>\n",
       "      <td>242.5</td>\n",
       "      <td>244</td>\n",
       "      <td>240</td>\n",
       "      <td>240</td>\n",
       "      <td>-6.00</td>\n",
       "      <td>13552</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2019-06-14 00:00:00</td>\n",
       "      <td>3.54036e+07</td>\n",
       "      <td>8.39682e+09</td>\n",
       "      <td>238.5</td>\n",
       "      <td>239.5</td>\n",
       "      <td>236</td>\n",
       "      <td>236</td>\n",
       "      <td>-4.00</td>\n",
       "      <td>14911</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2019-06-17 00:00:00</td>\n",
       "      <td>5.1692e+07</td>\n",
       "      <td>1.20434e+10</td>\n",
       "      <td>231.5</td>\n",
       "      <td>235</td>\n",
       "      <td>230.5</td>\n",
       "      <td>233</td>\n",
       "      <td>-3.00</td>\n",
       "      <td>20943</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                    日期         成交股數         成交金額    開盤價    最高價    最低價    收盤價  \\\n",
       "0  2019-06-03 00:00:00  3.66871e+07  8.65139e+09  235.5  238.5    232    238   \n",
       "1  2019-06-04 00:00:00  2.44434e+07  5.74505e+09  237.5    238    233    233   \n",
       "2  2019-06-05 00:00:00  3.59016e+07  8.46193e+09    238    238    234    235   \n",
       "3  2019-06-06 00:00:00  3.46517e+07  8.00877e+09  231.5    232  229.5    232   \n",
       "4  2019-06-10 00:00:00  3.55219e+07  8.44299e+09  237.5    240  234.5    240   \n",
       "5  2019-06-11 00:00:00  3.46917e+07  8.44881e+09    240    246    239  244.5   \n",
       "6  2019-06-12 00:00:00  3.04096e+07  7.46981e+09  244.5  247.5    243    246   \n",
       "7  2019-06-13 00:00:00  3.37317e+07  8.13614e+09  242.5    244    240    240   \n",
       "8  2019-06-14 00:00:00  3.54036e+07  8.39682e+09  238.5  239.5    236    236   \n",
       "9  2019-06-17 00:00:00   5.1692e+07  1.20434e+10  231.5    235  230.5    233   \n",
       "\n",
       "    漲跌價差   成交筆數  \n",
       "0  +2.50   8857  \n",
       "1  -5.00  11779  \n",
       "2  +2.00  12064  \n",
       "3  -3.00  14723  \n",
       "4  +8.00  15588  \n",
       "5  +4.50  13157  \n",
       "6  +1.50  11457  \n",
       "7  -6.00  13552  \n",
       "8  -4.00  14911  \n",
       "9  -3.00  20943  "
      ]
     },
     "execution_count": 29,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "stock2 "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "/Users/hou/anaconda3/lib/python3.6/site-packages/matplotlib/cbook/__init__.py:2062: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version.  Convert to a numpy array before indexing instead.\n",
      "  x[:, None]\n",
      "/Users/hou/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py:248: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version.  Convert to a numpy array before indexing instead.\n",
      "  x = x[:, np.newaxis]\n",
      "/Users/hou/anaconda3/lib/python3.6/site-packages/matplotlib/axes/_base.py:250: FutureWarning: Support for multi-dimensional indexing (e.g. `obj[:, None]`) is deprecated and will be removed in a future version.  Convert to a numpy array before indexing instead.\n",
      "  y = y[:, np.newaxis]\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "<matplotlib.legend.Legend at 0x7feaf94c86a0>"
      ]
     },
     "execution_count": 30,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 720x360 with 1 Axes>"
      ]
     },
     "metadata": {
      "needs_background": "light"
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "fig = plt.figure(figsize = (10, 5))\n",
    "plt.title('2330 Stock Price')\n",
    "plt.plot(stock2['日期'], stock2['收盤價'])\n",
    "plt.plot(stock2['日期'], stock2['開盤價'])\n",
    "plt.legend(['Close', 'Open'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}