Esempio n. 1
0
    def test_data_estat_data(self):

        ESTAT_KEY = os.environ['ESTAT']
        df = jpd.DataReader('0000030001', 'estat', appid=ESTAT_KEY)

        exp = pd.DataFrame(
            {
                'value': [117060396, 89187409, 27872987, 5575989, 1523907],
                '全国都道府県030001': ['全国', '全国市部', '全国郡部', '北海道', '青森県'],
                '全域・集中の別030002': ['全域'] * 5,
                '年齢5歳階級A030002': ['総数'] * 5,
                '男女A030001': ['男女総数'] * 5
            },
            index=pd.DatetimeIndex(['1980-01-01'] * 5, name='時間軸(年次)'))
        self.assert_frame_equal(df.head(), exp)

        df = jpd.DataReader(['0000030001', '0000030002'],
                            'estat',
                            appid=ESTAT_KEY)
        self.assertIsInstance(df, pd.DataFrame)

        df = jpd.DataReader("0002180001", 'estat', appid=ESTAT_KEY)
        exp = pd.DataFrame(
            {
                'value': [445007, 194243, 199623, 203464, 190711],
                '全国・都道府県・大都市': ['全国'] * 5,
                '性別': ['総数'] * 5,
                '表章項目': ['都道府県(自都市)内移動者数'] * 5
            },
            index=pd.DatetimeIndex([
                '2009-03-01', '2009-02-01', '2009-01-01', '2008-12-01',
                '2008-11-01'
            ],
                                   name='時間軸(月次)'))
        self.assert_frame_equal(df.head(), exp)
Esempio n. 2
0
    def test_data_limit(self):
        ESTAT_KEY = os.environ['ESTAT']
        df = jpd.DataReader('0003280394', 'estat', appid=ESTAT_KEY)
        assert len(df) == 100000
        self.assertEqual(df['value'].dtype, np.float64)

        df = jpd.DataReader('0003280394', 'estat', appid=ESTAT_KEY, limit=20)
        assert len(df) == 20
        self.assertEqual(df['value'].dtype, np.float64)
Esempio n. 3
0
    def _assert_target(self, target):
        ESTAT_KEY = os.environ['ESTAT']

        df = jpd.DataReader(target, 'estat', appid=ESTAT_KEY)
        exp_columns = pd.Index([
            '統計表ID', '政府統計名', '作成機関名', '提供統計名及び提供分類名', '統計表題名及び表番号', '提供周期',
            '調査年月', '公開日', '小地域属性フラグ', '統計大分野名', '統計小分野名', '総件数', '最終更新日'
        ], )
        self.assert_index_equal(df.columns, exp_columns)

        target = df.head(n=3)
        df = jpd.DataReader(target, 'estat', appid=ESTAT_KEY)
        self.assertIsInstance(df, pd.DataFrame)
Esempio n. 4
0
    def test_data_position(self):
        ESTAT_KEY = os.environ['ESTAT']
        df = jpd.DataReader('0003280394', 'estat', appid=ESTAT_KEY, limit=100)
        assert len(df) == 100
        self.assertEqual(df['value'].dtype, np.float64)

        df2 = jpd.DataReader('0003280394',
                             'estat',
                             appid=ESTAT_KEY,
                             startPosition=11,
                             limit=90)
        tm.assert_frame_equal(df.iloc[10:], df2)
        self.assertEqual(df2['value'].dtype, np.float64)
Esempio n. 5
0
    def test_data_estat_error(self):
        with tm.assertRaises(ValueError):
            # no app ID
            jpd.DataReader('00200521', 'estat', appid=None)

        ESTAT_KEY = os.environ['ESTAT']

        with tm.assertRaises(ValueError):
            # blank list
            jpd.DataReader([], 'estat', appid=ESTAT_KEY)

        with tm.assertRaises(ValueError):
            # invalid type
            jpd.DataReader(1, 'estat', appid=ESTAT_KEY)
Esempio n. 6
0
def DataRead(id_, ):
    """
    Read eStat datalist or data.
    """
    id_len = len(id_)
    if (id_len != 8) and (id_len != 10):
        raise ValueError('Length of id must be either 8 or 10.')

    data = jpd.DataReader(id_, 'estat', appid=keys.jpd_key)

    # in case the data large than the limit 100_000 once
    n = 1
    while len(data) % 100_000 == 0:
        n = n + 100_000
        data_more = jpd.DataReader(id_, 'estat', appid=keys.jpd_key, startPosition=n)
        data = pd.concat([data, data_more], sort=False, ignore_index=True)
        print('.', end=' ')
Esempio n. 7
0
    def test_data_yahoojp_en(self):
        idx = pd.DatetimeIndex(['2014-10-01', '2014-10-02', '2014-10-03'],
                               name='Date')
        columns = jpd.io.data._ohlc_columns_en
        expected = pd.DataFrame(
            {
                'Open': [6450, 6370, 6231],
                'High': [6559, 6423, 6309],
                'Low': [6435, 6256, 6217],
                'Close': [6500, 6275, 6290],
                'Volume': [14482100, 15240200, 10280100],
                'Adj Close': [6500, 6275, 6290]
            },
            index=idx,
            columns=columns)

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-10-05',
                            en=True)
        tm.assert_frame_equal(df, expected)
        _check_plot_works(df.plot, kind='ohlc')
Esempio n. 8
0
 def test_data_estat_data_numeric(self):
     ESTAT_KEY = os.environ['ESTAT']
     df = jpd.DataReader('0003109612', 'estat', appid=ESTAT_KEY)
     self.assertEqual(df['value'].dtype, np.float64)
Esempio n. 9
0
#!/usr/bin/env python
# -*- coding: utf-8 -*-
from spyre import server

import pandas as pd

pd.options.display.mpl_style = 'default'

# あらかじめデータを取得しておく
# 終値のみを取得し、一つのDataFrameに結合
import japandas as jpd

toyota = jpd.DataReader(7203, 'yahoojp', start='2015-01-01')[[u'終値']]
toyota.columns = [u'トヨタ']
honda = jpd.DataReader(7267, 'yahoojp', start='2015-01-01')[[u'終値']]
honda.columns = [u'ホンダ']
df = toyota.join(honda)


# spyre.server.App を継承したクラスを作る
class StockExample(server.App):
    title = u"株価のプロット"

    # 左側のペインに表示する UI 要素を辞書のリストで指定
    # ここではドロップダウン一つだけを表示
    inputs = [{
        "input_type":
        'dropdown',
        # ドロップダウン自体の表示ラベル
        "label":
        'Frequency',
Esempio n. 10
0
    def test_to_yahoojp(self):
        idx = pd.DatetimeIndex(['2014-10-01', '2014-10-02', '2014-10-03'],
                               name='日付')
        columns = jpd.io.data._ohlc_columns_jp
        expected = pd.DataFrame(
            {
                '始値': [6450, 6370, 6231],
                '高値': [6559, 6423, 6309],
                '安値': [6435, 6256, 6217],
                '終値': [6500, 6275, 6290],
                '出来高': [14482100, 15240200, 10280100],
                '調整後終値*': [6500, 6275, 6290]
            },
            index=idx,
            columns=columns)

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-10-05')
        tm.assert_frame_equal(df, expected)
        _check_plot_works(df.plot, kind='ohlc')

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-10-05',
                            interval='d')
        tm.assert_frame_equal(df, expected)

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-10-05',
                            interval='v')
        tm.assert_frame_equal(df, expected)

        idx = pd.DatetimeIndex(['2014-10-06', '2014-10-14'], name='日付')
        expected = pd.DataFrame(
            {
                '始値': [6370, 6050],
                '高値': [6455, 6069],
                '安値': [6145, 5710],
                '終値': [6220, 5731],
                '出来高': [51266400, 50540700],
                '調整後終値*': [6220, 5731]
            },
            index=idx,
            columns=columns)

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-10-15',
                            interval='w')
        tm.assert_frame_equal(df, expected)

        idx = pd.DatetimeIndex(['2014-10-01', '2014-11-01', '2014-12-01'],
                               name='日付')
        expected = pd.DataFrame(
            {
                '始値': [6450, 6830, 7360],
                '高値': [6559, 7314, 7873],
                '安値': [5710, 6696, 7107],
                '終値': [6498, 7314, 7558],
                '出来高': [233353400, 232048700, 244583800],
                '調整後終値*': [6498, 7314, 7558]
            },
            index=idx,
            columns=columns)

        df = jpd.DataReader(7203,
                            'yahoojp',
                            start='2014-10-01',
                            end='2014-12-31',
                            interval='m')
        tm.assert_frame_equal(df, expected)