unbeknowndict

i have an unbeknown dictionary. everything is up to me.

PandasでセットしたdataframeからPostgreSQLへデータを投入

environment

  • PostgreSQL 11.1
  • lxml 4.3.1
  • html5lib 1.0.1
  • beautifulsoup4 4.7.1
  • SQLAlchemy 1.2.18
  • pandas 0.24.1

事前準備

www.halclan.net

上記、作成したdataframeを利用。

www.halclan.net

PostgreSQLはlocalにパパっと立てたものを取り急ぎ利用。

requirements.txt

beautifulsoup4
pandas
lxml
html5lib
sqlalchemy
#!/usr/bin/env python
# -*- coding: utf-8 -*-

from urllib import request
from bs4 import BeautifulSoup
from sqlalchemy import create_engine
import pandas as pd

BASE_URL = "https://www.baystars.co.jp/players/detail/1000002"
url = BASE_URL

df_html = pd.read_html(url)
df_td = (df_html[1].head())

engine = create_engine(
    'postgresql://xxx@localhost:5432/postgres', echo=False)
df_td.to_sql('baseball', con=engine, index=False)

データが格納されていることを確認。

postgres=# \d
           List of relations
 Schema |   Name   | Type  |   Owner
--------+----------+-------+-----------
 public | baseball | table | xxx
(1 row)

postgres=# select * from baseball limit 20;
 年度 | 所属球団 | 試合 | 打数 | 安打 | 二塁打 | 三塁打 | 本塁打 | 打点 | 盗塁 | 打率
------+----------+------+------+------+--------+--------+--------+------+------+-------
 2010 | 横浜     |    3 |    7 |    1 |      0 |      0 |      1 |    1 |    0 | 0.143
 2011 | 横浜     |   40 |  145 |   35 |     10 |      0 |      8 |   22 |    1 | 0.241
 2012 | 横浜DeNA |  108 |  386 |   84 |     16 |      3 |     10 |   45 |    1 | 0.218
 2013 | 横浜DeNA |   23 |   51 |   11 |      1 |      0 |      1 |    3 |    0 | 0.216
 2014 | 横浜DeNA |  114 |  410 |  123 |     24 |      2 |     22 |   77 |    2 |   0.3
(5 rows)