Pythonでスクレイピング

スクレイピングの例として、Yahoo からトヨタの株価を取得しグラフを描いてみる。
逐次確認しながら進めるため、Jupyter-notebookを使用する。

1.Yahoo かたトヨタ(7203)の株価を取得する

2.株式のテーブルを取得し、その中の全行(tr)を取出す

結果は、次の様なリストになる。

3.株価データ用の2次元リストを作成する

出力結果の一部を示す

4.plotly で扱いやすくするため、2次元リストをデータフレームに変換する

5.plotly でグラフを描く

本来であれば「ローソク足」という株価特有のチャートにしたかったのだが
plotlyのものはとても馴染めないものだったので、折れ線グラフで妥協した。

geopandas のインストール

pip で geopandas のインストールが出来なかった。
同じ問題で悩んでいる方の福音となればとの想いで書留めたメモです。

当方の環境

  • windows 7 64bit
  • python 3.7(単独でインストール)

Visual c++ をインストールし、ググって調べたあらゆる方法を試みるも、パッケージの依存関係の所為か全て失敗に終わる。
そんな時に見つけたのが、Windows バイナリを入手してのインストール方法。

配布元:Unofficial Windows Binaries for Python Extension Packages

このサイトから、geopandas‑0.4.0‑py2.py3‑none‑any.whl を探しダウンロード。
(C:\Users\ユーザー名\Downloads にダウンロードしたものとする。)

次に

として、pip の実行。

悩みに悩んだ geopandas のインストールが、実に簡単に success!

ぬか喜びに終わらないよう、その動作確認を

既定のブラウザが起動し、地図が表示されて OK!。

なお、上を実行すると次のようなワーニングが出るが、無視して構わないらしい。

Apacheが起動しない場合の対策

このところ、ウィルスバスターが原因でPC起動時にapacheが立ち上がらない。
仕方ないので、「ウィルスバスター停止→xampp-controlからapache起動→ウィルスバスター再起動」を毎日繰り返している。
原因がはっきりしているので、こちらはトレンドマイクロに問合せ中であるが回答がない。

今朝方は、これに加え「PID 4」がポート80を使用してとのことで、上の手順でも起動せず。
インターネットをググって何とか対策ができたので、その手順を残して置く。

1. プロセスID(PID)の特定

ポート80を使用しているPIDを特定する

2. タスク名の特定

ポート80をListenしているPIDからイメージ名(タスク名)を調べる

3. サービスの停止

今回の原因は「Web Deployment Agent Service」(参考サイト(1)に同じ)。
このサービスが、何故起動するようになったかは不明ではあるものの、これまで使っていなかったので停止しても問題はなかろうとの判断の元、これを停止することにする。

「スタート→管理ツール→サービス」として、表示されたサービスの中から一致する名前を探し、それをダブルクリックして次のように設定する

(1)スターアップの種類→「手動
(2)サービスの状態→「停止

その後、apacheの起動。

4. 参考サイト

(1)Windows7でApacheが起動しない
(2)WebMatrix とポート80 の関係を断つ方法
(3)netstatでリッスンしているプロセスを特定する

Plotly オフライン・プロット

Plotlyオンラインプロットは素晴らしいのだが、無償の範囲で使用するとなると、登録できるプロット数が25迄なので、いろいろ試すにはちょっと少ない。
これが、商売なら$420/年程度なら高いとは思わないが、如何せん単なるお勉強程度の私にはやや高価過ぎ。
そこで、どうしても必要になるのがオフラインでの使用。
詳細については、こちらのページの中段よりやや下の「Initialization for Offline Plotting」に説明が記載されているが、自分用にまとめておく。

オフライン・プロットを行うためのメソッドが2つある。

  1. plotly.offline.plot()
    ローカルにHTMLファイルを作成/出力し、ブラウザにその内容を表示する
  2. plotly.offline.iplot()
    Jupyter notebook 内にプロット表示する

【使用例】

(1) plotly.offline.plot

これを実行すると、ソースを作成したフォルダに “temp-plot.html” が作成され、既定のブラウザにプロットが表示される。
ファイル名を指定する場合は、filename で指定する。

指定せずに、実行すると”temp-plot.html”となり、既に同名のファイルが存在する場合は上書きされる。

(2) plotly.offline.iplot

この場合、nootbook セッション内で次のステップを実行する必要がある。

使用例を以下に示す。

是さえ押さえておけば、Plotlyを心置きなく自由に使用できるはず!!

Anacondaよ、さようなら

anaconda のインストールはもう諦めた。
暫くは、anaconda のpythonをイジッていたのだが
或る時から、動作が遅くてどうにもならない。
再インストールしようとアンインストールしたのが
ケチの付けはじめ。

最新版をダウンロードして、意気揚々インストールを
試みるも、最後の最後でERROR

Error内容

こんなんで、エラー内容が分かるか?
色々ググって対策を試みるも全て×(ダメ)

その都度、何度アンインストールとインストールを繰返したことか!
パソコンの調子までおかしくなってしまう程。
海外のサイトも含め調べたが、同様に悩んでいる人が多数いるものの
これといった対策は皆無。

やりたいことが有るので、これ以上コイツに関わるのはやめた。

もう選択肢は、python の単独インストール一択のみ。
必要なものは、一つずつインストールしていくしかない。
まず、jupyter だけは必要なので、個別にインストール。
これだけで、私的には anaconda と同じ様な環境に!
と言うか、返ってストレスなくサクサクと動く想定を超えた環境。

パッケージの管理も、”pip”で十分。
Numpy、Scipy、pandas ・・・ 問題なくインストールできている。

Anaconda よ、さらば!

tibble の桁表示について

tibble とは、tbl_df クラスが付与された改良版の data.frame のことで、これを表示した場合、各変数(列)のデータ型が表示されたり、1 画面に収まるようデータが見易く編集された形式で出力されます。
data.frame よりは、処理速度の面でも優れているとのことなので tibble を使ってみたが、平均値を出力すると次のように数値が丸められて小数点以下が表示されない。

本来の数値は、次の通りであるべきですが・・・

こうなってしまうのは、tibble の使用する pillar というパッケージが有効数字や欠損値などの表示形式を勝手にイジってしまうためとのことです(詳しくは、こちらを参照)。

見易さを重視するため、数値の有効桁数がデフォルトで 3 に設定されており、それを超える数値は小数点以下の桁が丸められてしまうようです。
それを示すのが下の事例です。

これではちょっと困るので、デフォルトの有効桁を変更します。この変更には、options を使用します。

または、標準の print.data.frame()(上の例を参照) や print.data.table() を使うこともできます。また、print.tbl_df() 関数を上書きすることも可能で、次の様な設定を .Rprofile にしておけば print.data.table()(または print.data.frame())がデフォルトで使用されるようになります。

tibble を使用する場合は、表示された数値にくれぐれも注意してください!!

Graphvizのテスト

Graphvizがwordpressでも使えるらしいのでテストしてみます。プラグインには「TFO Graphviz」を使用します。

おお、素晴らしい!

TFO Graphviz 使用方法

ショートコードの一般形式は次の通り。

のリストは下表の通り。

options 説明
height=”<image_height>” イメージタグに height 属性を設定する。SVG に有効
href=”self|<URL>” 画像をクリックした時に表示する URL を指定する。デフォルト:href=””、self:同じウィンドウ、<URL:指定のURL
id=”<id>” 生成された画像をイメージマップにリンクするために使用する識別子を指定する。これを指定しない場合は、”tfo_graphviz_N”(N:1からの連番)が自動生成される。
imap=”yes|no”
imap=”yes|no”
lang=”<dot|neato|twopi|circo|fdp>” 使用する Graphviz インタープリタを指定する。デフォルトは dot
output=”<png|gif|jpg|svg>” 生成する画像フォーマットを指定する。デフォルトは png
simple=”yes|no” コードの周りに非常に基本的な DOT ラッパーが適用される。

このコードは、次のコードが生成される。

title=”<title>” 画像のタイトル。画像を参照するための alt および title 属性で使用する
width=”<image_width>” イメージタグに width 属性を設定する。

RStudioで日本語PDF

1.環境

項目 内容
OS windows7
R 3.5.0
knitr 1.20
RStudio 1.1.453
TeXディストリ w32Tex 角藤版

2.R Markdown

RStudioで、新規R Markdownを選択した時に作成される雛形文書そのもの。

3.結果

このまま実行した時の結果。
! Package inputenc Error: Unicode char 蟷エ (U+5E74)

(inputenc) not set up for use with LaTeX.

エラー: Failed to compile 雛形Rmd.tex. See 雛形Rmd.log for more info.
実行が停止されました

どうやら、日本語(Unicode)処理ができないらしい。

4.原因

PDF文書を指定すると、デフォルトのTexとして
(1) windows : MikTex
(2) OSX : MacTex
(3) Linux : TeX Live
のエンジンが使用されるため。
TeX Wikiによれば、
MiKTeX は Microsoft Windwos 向けの TeX のディストリビューションです. TeX Live と並んで国際的に広く使われていますが,日本語 pTeX が含まれていません. 特別な理由がない限り TeX Live または W32TeX の利用をおすすめします.
とのこと。

5.対策

YAMLヘッダーに明示的に、latex_engine として、UTF-8 ベースの TeX を指定する必要があるようです。

文書全体を以下に示します。

6.最後に

Rmdファイルに日本語名を使用したら、見事にコケました
windows上では、日本語のファイル名は使用できないようですので注意してください。
(追)
Linux(Ubuntu18.04)では、日本語ファイル名が問題なく使用できました。

追伸

再テストの結果、上記のR Markdown が一切動作しなくなりました。
Windows 上も Virtual Box の Ubuntu 上でも!
思い当たる点は、
(1) windows – 角藤版を最新にしようとインストーラを起動したこと。結果的には、何もせずキャンセルしたのだが・・・・
(2) Ubuntu – Tex Live のtlmgr が動かないので、その周りの更新等を行ったこと。

一旦、w32Tex(Windows)とTexLive(Ubuntu)を削除し、w32Texは再インストールした。
(Tex Live の再インストールは保留中)
それでも、結果は変わらず。
エラーログからは、エラー内容が全く読み取れず、対策の打ちようがない。
思い悩んだ挙句、思いついたのが「latex_engine」の変更。
「TeXworks」のタイプセットに表示されるものを指定してみよう!
① pdfplatex
指定不可。指定できるのは、pdflatex,lualatex,xelatex の何れかとのこと。
② pdflatex
しからばと、これを指定するも、想定通り Unicode 周りでエラー。
③ lualatex
万歳!問題なくPDFが出力される。
④ xelatex
念のために試してみたが、やはりエラーとなる。

結果として、私の現在の環境では「lualatex」を指定すれば良いようです。
注意
YAMLヘッダに「mainfont」を指定しないと、日本語が表示されないので、次の様に指定する必要があります。

なお、「Meiryo」の部分を「メイリオ」と指定することができませんでしたので、ご注意の程を!

R 起動コマンドの改善(windows編)

RGui を閉じる際に、毎回ワークスペースの保存有無を聞かれるが、答えはいつも[n」なのに・・・
「q(‘n’)」とするのも面倒だし。
こちらのPDF文書およびSlide Shareに、その解決策が記載されていました。
保存有無を問わないようにするには、次の何れかを指定します。

–save ワークスペースを保存して終了
–no-save ワークスペースを保存しないで終了

これを、R のインストール時に作成されたショートカットに設定します。
保存しない場合の設定は、次の通りです。
(1) ショートカットを右クリック、プロパティを開く。
(2) プロパティの「リンク先」を次の通り変更する。
(変更前)”C:\Program Files\R\R-3.5.0\bin\x64\Rgui.exe” –cd-to-userdocs
(変更後)”C:\Program Files\R\R-3.5.0\bin\x64\Rgui.exe” –cd-to-userdocs –no-save
(Rgui の場所は、自分の環境に合わせて変更してください。)
(3) 「OK」をクリックして、変更を保存する。

ubuntu 18.04 への R 3.5 のインストール

UBUNTU PACKAGES FOR Rからの引用。
手順は以下の通り。

/etc/opt/sources.listの編集

最新のR 3.5パッケージを入手するため、/etc/apt/sources.list の最下行に次のエントリを追加する。

追加は、vim でも gedit でも好きなエディタでよい。例えば、gedit なら

とし、上記コードを最下行にコピペし「保存」すればよい。
その際、何やらかんやらメッセージが出るが、ファイルは更新されているので無視してよい。

鍵の設定

(2018/11/15追加)
Ubuntu 鍵サーバにある2番目の鍵に問題があるので、次の何れかの方法でキーを登録する必要がある。

詳しくは、こちらを参照。

R のインストール