【Python】Pandas を使って MySQLのデータを読み込む

2018年4月15日Python,開発

おはようございます。

少し久しぶりの Python です。
今回はデータ分析ライブラリの「Pandas」を使って、前回までに取得できるようになった Bitflyer の Ticker 情報をMySQLから取り出してみたいと思います。

プログラムは前回のものを流用します。

【Python】bitflyer の Ticker を MySQL に突っ込む

スポンサーリンク

パッケージ追加

Pandas のパッケージをインストールします。

Default Settings の選択

上部メニューの「File」>「Default Settings」を選択します。

パッケージの追加

Default Setting画面が表示されるので、右上の対象プロジェクト環境を今回作成した環境に変更し、右側にある「+」ボタンをクリックします。

Pandas のインストール

パッケージ検索画面で、「pandas」と検索します。
一覧に表示された「pandas」を選択して「Install Package」ボタンをクリックします。

画面の修正

画面からトリガーするためのボタンを追加します。

Main.html

ティッカー情報パネルヘッダーに「取得」ボタンを追加。

<div class="entry_title">
   <div class="pull_left">ティッカー情報</div>
   <div class="pull_right">
      <input type="button" value="取得" />
      <input type="button" value="更新" />
      <input type="button" value="更新開始" />
      <input type="button" value="更新停止" />
   </div>
</div>

プログラムの修正

インポート宣言の追加

BfTool.py

from Utils.MySQLUtil import MySQLUtil

MySQLUtil.py

import pandas

データ取得処理の追加

BfTool.py

class GetTicker(RequestHandler):
    """
    ティッカー情報の更新を停止
    """

    def initialize(self):
        logging.info("GetTicker [initialize]")

    def post(self):
        logging.info("GetTicker [post]")
        mysql = MySQLUtil();
        df = mysql.convert_table_to_df()

        print(df.head())
        self.write(df.to_json(orient="records"))

MySQLUTil.py

def convert_table_to_df(self):
    """
    データ(テーブル)をデータフレームに変換してかえします
    :return:
    """

    with closing(mysql.connector.connect(**self.config)) as conn:
        sql = """
                SELECT
                    *
                FROM
                    {table_name}
        """.format(table_name="TBL_TICKER")

        df = pandas.read_sql(sql=sql, con=conn)

    return df

URLマッピングの追加

BfTool.py

app = tornado.web.Application([
    (r"/", MainHandler),
    (r"/ws", SendWebSocket),
    (r"/balance", GetBalanceHandler),
    (r"/execution", GetExecutionHandler),
    (r"/childOrder", GetChildOrderHandler),
    (r"/sendOrder", SendChildOrderHandler),
    (r"/cancelOrder", CancelChildOrderHandler),
    (r"/sendTicker", SendTicker),
    (r"/startTicker", StartTicker),
    (r"/stopTicker", StopTicker),
    (r"/sendLine", SendLine),
    (r"/getTicker", GetTicker)
    ],
    template_path=os.path.join(os.getcwd(), "templates"),
    static_path=os.path.join(os.getcwd(), "static"),
    js_path=os.path.join(os.getcwd(), "js"),
)

画面処理の追加

script.js

    /**
     * ティッカー情報をデータフレームで取得
     */
    function getTicker() {
    
       $.ajax({
          url: "http://localhost:8080/getTicker",
          type: "POST",
          success: function(response) {
             console.log(response)
          },
          error: function() {
          }
       });
    }

起動してみる

起動して追加した「取得」ボタンをクリックします。

コンソール出力

PyCharmのコンソールにデータが出力されました。

まとめ

ひとまずはここまで。

次回は、チャートが描画できればいいなと思っています。

ではでは。

 

スポンサーリンク


関連するコンテンツ

2018年4月15日Python,開発MySQL,Python,サンプルプログラム

Posted by doradora