• Skip to main content
  • Skip to primary sidebar

学習記録

プログラミング

HTMLファイルを生成

2018年10月17日 by 河副 太智 Leave a Comment

現時点ではhtmlファイルをゼロから生成する方法が不明

以下は指定のhtmlファイルを開いて別名で保存する方法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# write-html-2-mac.py
import webbrowser
 
f = open('helloworld.html','w')
 
message = """<html>
<head></head>
<body><p>Hello World!</p></body>
</html>"""
 
f.write(message)
f.close()
 
#Change path to reflect file location
filename = 'file:///Users/username/Desktop/programming-historian/' + 'helloworld.html'
webbrowser.open_new_tab(filename)

 

Filed Under: python3

画面全幅表示(stretch)

2018年10月11日 by 河副 太智 Leave a Comment

Wordpressの記事ページの横幅を全開に広げる

1
2
3
4
5
6
7
8
9
10
<div class="siteorigin-panels-stretch panel-row-style
panel-row-style-for-4204-1" style="margin-left: -30px;
margin-right: -30px; padding-left: 0px;
padding-right: 0px; border-left: 0px; border-right: 0px;"
data-stretch-type="full-stretched">
 
記事
 
 
</div>

 

Filed Under: css

jsonファイルから情報を取得

2018年10月3日 by 河副 太智 Leave a Comment

Comtradeの国名一覧jsonファイルから国名を取得します。

1
2
url = urllib.request.urlopen("https://comtrade.un.org/data/cache/partnerAreas.json")
jdata = json.loads(url.read().decode())

jsonファイルのデータを個別に指定して変数に代入

1
reporting_area = "&r=" + (jdata['results'][i]["id"])

i はfor文のiです。

Filed Under: python3

過去数か月分のデータをDFに追加していく

2018年9月22日 by 河副 太智 Leave a Comment

APIが混雑している際に再取得するdef fetch_url(url):を追加

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import pandas as pd
import plotly.offline as pyo
import plotly.graph_objs as go
import urllib.request
from time import sleep
from datetime import datetime, date, timedelta
from dateutil.relativedelta import relativedelta
import ssl
ssl._create_default_https_context = ssl._create_unverified_context
 
#パラメーターの作成
#trade data type C Commodities S Services
datatype = "type=C"
#china=156,UK=826,US=842,jp=392or all
reporting_area = "&r=842"
#Annual=A,Monthly=M
frequency = "&freq=M"
#YYYY or YYYYMM or now or recent 
time_period = "&ps=201201"
# Harmonized System (HS)
classification = "&px=H4"
#china=156,UK=826,US=842,or all
partner_area = "&p=all"
# 1 (imports) and 2 (exports),
import_or_export = "&rg=1"
#HS CODE
classification_code = "&cc=610910"
#csv or json
fmt = "&fmt=csv"
#取得する相手国の数
amount_country = 6
#取得期間(年or月)
term=72
# term = 72
#一番古いデータの年月(更新あり)
oldest = "201201"
 
url = ("https://comtrade.un.org/api/get?"+datatype + reporting_area+frequency+time_period+classification+partner_area+
      import_or_export+classification_code+fmt)
 
 
#csvをdfに入れる
 
res = urllib.request.urlopen(url)
df = pd.read_csv(res)
 
#最新年を取得
newest = (df["Period"].max())
 
 
#最新年のデータのみを取得
df_n = df[df["Period"] == newest]
 
#valueが高い順に並べ替え
df_s = df_n.sort_values('Trade Value (US$)', ascending=False)
 
#上位10件を取得してリスト化
partner = []
for var in range(1, amount_country):
    partner.append(df_s.iat[var, 12])
 
    
 
 
 
    
#ここに過去の日付のcsvを追加するコードを入れる
def get_oldtime(tdatetime):
    tdatetime = datetime.strptime(str(oldest),"%Y%m")
    tdatetime =(tdatetime + relativedelta(months=1))  
    return tdatetime.strftime('%Y%m')
 
 
 
#一か月ごとのパラメータを生成
def add_old(old):
    addurl = ("https://comtrade.un.org/api/get?"+datatype + reporting_area+frequency+old+classification+partner_area+
      import_or_export+classification_code+fmt)
    sleep(2)
    return addurl
 
 
 
 
#APIが混雑している際に再取得する
def fetch_url(url):
    max_times=10
    sleep_sec=5
    retry_count = 0
    while True:
        f = urllib.request.urlopen(url)
        
        try:
            retry_count += 1
            if f.getcode() == 200 or retry_count >= max_times:
                # 200が返ってくるか、最大試行回数に到達した場合ループを抜ける
                return f
                break
            time.sleep(sleep_sec)
        except ValueError:
            print("Oops!  That was no valid number.  Try again...")  
 
 
 
for i in range(1,term):
    oldest = get_oldtime(oldest)
    time_period = "&ps=" + str(oldest)
    added_url = add_old(time_period)
    added_res = fetch_url(added_url)
    print(added_res.getcode())
    added_df = pd.read_csv(added_res)
    df = pd.concat([df,added_df])
    print(oldest)
 
 
 
data = []
for i in partner:
    
    df2 = df[df["Partner"] == i]
    trace = go.Scatter(x=df2["Period Desc."],
                       y=df2["Trade Value (US$)"],
                       mode = 'lines',
                       name = i)
    data.append(trace)
 
    
layout = go.Layout(
    title="アメリカが輸入するTシャツ等HS6109.10該当貨物"
)
 
fig = go.Figure(data=data, layout=layout)
 
pyo.plot(fig,filename="ustshirt.html")

 

Filed Under: グラフ

Prophetの時系列分析でTwitterの株価予想

2018年9月21日 by 河副 太智 Leave a Comment

Prophetを使用するとハードルの高い時系列分析がサラッとできます。
あくまでも簡易的な分析ですので期待度は微妙ですが
ちょっとした目安にする程度であれば便利かと思います。

Twitter社の株価データはYahooFinanceから取得しています。

黒い点が実際の株価の動きを表しており、大概は水色のゾーンに包括されて
おりますが、予想外の出来事(ファンダメンタル系)が起きると水色ゾーン
から外れてしまいます。

2018年8月27日の米株式市場でのツイッター株が前日終値比21%減の急落は
facebookの株価に引っ張られた為なのか予測の範囲から外れておりますが、
今後はよほどのことがなければ上昇するだろうとの予想です。
(※利益の保証は一切致しませんのでご了承ください。あくまで目安です。)

一年後、実際のtwitter株がどれほどこのグラフと合うのか??
Prophetの能力検証が楽しみです。

 

コード

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from fbprophet import Prophet
 
data = pd.DataFrame()
data2 = pd.read_csv("twitter.csv", skiprows=2, encoding="cp932",header=None,
        names=['ds','Open','High','Low','Close','Volume','y'])
data = data.append(data2)
 
model = Prophet()
model.fit(data)
 
future_data = model.make_future_dataframe(periods=200, freq = 'd')
future_data = future_data[future_data['ds'].dt.weekday < 5]
forecast_data = model.predict(future_data)
 
fig = model.plot(forecast_data)
model.plot_components(forecast_data)
plt.show()

上記コードはカラムの名前と順番をProphetに合わせてアレンジして
いるので、YahooFinanceのcsvファイルを少し調整する必要があります

Filed Under: グラフ

Jupyternotebook初期設定

2018年9月17日 by 河副 太智 Leave a Comment

c:ドライブのユーザーフォルダー(自分の名前やメールアドレスの一部)に
新規フォルダを作る(jupyter_notebook等)

次にコマンドプロンプトから

>cd jupyter_notebook

>jupyter notebook

と入力する

Filed Under: python3 Tagged With: Jupyter, 環境, 環境構築

  • « Go to Previous Page
  • Page 1
  • Interim pages omitted …
  • Page 6
  • Page 7
  • Page 8
  • Page 9
  • Page 10
  • Interim pages omitted …
  • Page 55
  • Go to Next Page »

Primary Sidebar

カテゴリー

  • AWS
  • Bootstrap
  • Dash
  • Django
  • flask
  • GIT(sourcetree)
  • Plotly/Dash
  • VPS
  • その他tool
  • ブログ
  • プログラミング
    • Bokeh
    • css
    • HoloViews
    • Jupyter
    • Numpy
    • Pandas
    • PosgreSQL
    • Python 基本
    • python3
      • webアプリ
    • python3解説
    • scikit-learn
    • scipy
    • vps
    • Wordpress
    • グラフ
    • コマンド
    • スクレイピング
    • チートシート
    • データクレンジング
    • ブロックチェーン
    • 作成実績
    • 時系列分析
    • 機械学習
      • 分析手法
      • 教師有り
    • 異常値検知
    • 自然言語処理
  • 一太郎
  • 数学
    • sympy
      • 対数関数(log)
      • 累乗根(n乗根)
    • 暗号学

Copyright © 2025 · Genesis Sample on Genesis Framework · WordPress · Log in