車を購入しようと思う―中古車市場の相場を調べる
諸々の理由により車を購入しようと思う。車種は、諸々の理由からマツダのCX-5にしようと思っている。しかしCX-5は高い。そして2015年のMC後にさらに値段が上がってしまった。上位グレードのXD PROACTIVE(ディーゼル、自動ブレーキ付き)でも選ぼうものなら350万は軽く吹っ飛んでしまう程に高い。下位グレードの20S(ガソリン、自動ブレーキなし)でも車両本体だけで250万近くはかかってしまい、金のない私にとっては、おいそれと手が出せない価格である。私は車も欲しいが、自転車も植物栽培もアクアリウムもカメラも天文も投資もやりたいのでそんな余裕は無い!
そこで中古車・新古車となるわけです。なんとかセンサーや、マツダユーカーなんとか、といった中古車サイトを当たりましたが、どうも相場がつかみにくい。いや、価格.com行けば年式-価格や走行距離-価格の関係がマップで表示されているのですが、グレードや修復歴の有無に関係なく表示されているのでわかりにくいんですね。私が欲しいのは、20Sで修復歴の無い車なのです。
というわけで、pythonの勉強がてら、某中古車情報サイトからスクレイピングしてくれるコードを書いてみた。素人のコードなので、汚い・無駄が多いのは見逃してください。
以下のコードでは、CX-5全車種、修復歴なし、衝突被害軽減ブレーキ有、フィルターしている。
上記以外の場合はtarget_urlをいじれば大丈夫。
#!/usr/local/bin/python3 # -*- coding: utf-8 -*- import lxml.html import requests import csv import datetime car_urls = [] for i in range(1,100): target_url = 'http://www.carsensor.net/usedcar/search.php?STID=CS210610&SORT=2&CARC=MA_S087&YMIN=2012&OPTCD=REP0*PCS1&DLR=1&PAGE='+str(i) try: root=lxml.html.parse(target_url).getroot() els =[el.get('id') for el in root.cssselect('#bukkenCas div')] except: break ids = [i for i in els if i] for id in ids: car_urls.append('http://www.carsensor.net/' + root.cssselect('#'+ id +' a')[0].get('href')) #List for write to CSVfile car_info = [[]] car_info[0] = ['本体価格', '支払総額', '年式', '走行距離(万km)', '車検有無', '車検残', '修復歴', '地域'] #Get each car info and Append to csv list for car_url in car_urls: root=lxml.html.parse(car_url).getroot() res = root.xpath('string(//div[@class="l-box bknDtl_info"])').replace('\t','').replace(' ','') res = [r for r in res.split('\n') if r] res = [r for r in res if r] #print(res) kyori = res[res.index('走行距離')+1] if '万' not in res[res.index('走行距離')+2]: kyori = (float(kyori) / 10000) td = datetime.datetime.today() syaken_y = res[res.index('車検有無')+1].split('(')[0] syaken_m = res[res.index('車検有無')+2].strip('年').strip('月') if '整備付'in syaken_y: syaken_y = str(td.year + 2) syaken_m = str(td.month) elif '整備別'in syaken_y: syaken_y = str(td.year) syaken_m = str(td.month) syakenzan = (int(syaken_y)-td.year)*12 + (int(syaken_m)-td.month) car_info.append([res[res.index('本体価格')+1].strip('万円'), res[res.index('支払総額')+1].strip('万円'), res[res.index('年式')+1], kyori, syaken_y + '/' + syaken_m, syakenzan, res[res.index('修復歴')+1], res[res.index('地域')+1] ]) print(car_info) with open(u'E:\\CAR\\car_info.csv', 'w')as f: writer = csv.writer(f,lineterminator='\n') writer.writerows(car_info)
car_infoを適当にプロットするとこんな感じ。
年式-本体価格の関係
走行距離-年式-本体価格の関係
これを見ると、走行距離も年式も少ない所謂新古車は、たいして安くなってないことがわかる。
また、走行距離だけに関していえば、20万円/10000km くらいの割合で安くなっているように見える。新車本体300万円とすると、15万km走行での減価償却を想定してのことなのか?
とりあえず、車を購入するときはこの図と見比べて値段の妥当性を判断しよう。
次にやること候補としては、
・グレード別の価格調査
・走行距離や年式を機械学習させて、本体価格を出すプログラムを作る。
はい…機械学習とか面白そうだから…手を出してみたいんですよ…
Win10 64bit での Python TA-Lib のインストール
windows10 64bit, python3.5, VisualStudio Community 2015の環境でTA-Libをインストールしようとしたらやっぱり躓いた!
結構長時間ハマってたので備忘録として残しておきます。
①ta-libの入手 http://ta-lib.org/
zipの中身を、私の場合はE:\ta-libに展開。
②Cコンパイラのインストール
ちなみにこの時点で python -m pip ta-libとしても、vcvarsall.batが見つからない、といったようなエラーが出る。
調べると、VS2015をインストールしただけではCコンパイラはインストールされていないらしい!!
ここで相当時間を消費した!
解決方法は、VS2015起動→プロジェクト新規作成→C/C++プロジェクト作成 って選択すると、インストールの項目が表示されるのでそれに従うだけ。
③python -m pip ta-lib するが…
LNK1120がでて死亡。
④Python Extension Packages for Windows - Christoph Gohlke
からコンパイル済みの.whlを落としてきて、python -m pip install *.whl
(私はE:\直下にダウンロードしました。)
やったね^^
2015年GW デンマーク・フィンランド旅行2
前回から3か月近く経ってしまいました。いつごろ書いてんだって感じですね。
では、デンマークの続きから。。。
こちらはデンマーク国立博物館。なんとコスプレ展をやっていました!日本語まで書かれてる。
残念ながら当日は閉館していて中に入ることはできず。前を歩いていた日本人女性の方も残念そうでした。
デンマークの警官はチャリもかっこいいのに乗ってました。さすがのチャリ先進国です。
ホテルから晩御飯を食べに行こうとしていると、デンマーク中央駅(後ろの赤レンガの建物です)の裏手で何かの団体の行列に遭遇。平和団体か何か?
いざ、フィンランドへ!
フィンランドの街並み。歴史的な影響からなのか厳寒地方だからなのかはわかりませんが、第一印象は「ロシアっぽい」でした。
ロシアといえば最近日本でも有名になってきたマリメッコ。日本では若者向けというイメージですが、フィンでは若い女性もおばちゃんも使っているのを見かけました。
ここマリメッコ本社は、ヘルシンキ中央から地下鉄でHarttoniemi駅まで移動+駅から徒歩20分ほど離れているにもかかわらず日本人であふれていました。
ヘルシンキのマーケット広場です。そのまんまの名前ですが、現地の地図でも同じ表記だったのでおそらくこれで正式名です。イチゴが売られていましたがスペイン産でした(フィン産なら買ってた)。屋台で軽食も食べられる(イートイン)ので食事ポイントとしても便利です。ここも観光客が多く、日本人のおばちゃんがわいわいしていました。
近くにシリアラインの発着場があります。今回は日程の都合で乗れませんでしたが、次回があればぜひ乗ってフィヨルドツアーとか行ってみたい!
おまけ1)ヘルシンキ市内の自転車道です。車道と自転車道との間に建てられたポールが自転車道施設に対する強い意志を感じさせますね、さすがフィンランド!
おまけ2)ホテル近くにあった日本食店。なぜ「ばっかり」なのか・・・
おまけ3)ヘルシンキバンター空港
2015年GW デンマーク・フィンランド旅行1
今年の5月のゴールデンウィークに北欧デンマークとフィンランドに旅行に行っていたのだけど、その時の記録を全然まとめてなかったのでふと思い立ったので備忘録的にまとめてみる。この後同じように旅行に行く人の参考になればとも思う。
そもそも何故デンマークとフィンランドなのか?特に理由はなかったと思う。
なんとなくヨーロッパがいいということになり、調べてみるとイギリスは飯が不味く、スペインは物価が高く、スイスは時期がまだ早かった。
デンマークはチボリ公園がある→ええやん、となり、それなら同じ北欧ということでフィンランドも一緒にって感じだったか。
そのころにはスペインを却下した理由は忘れ去られていた。
30万円/人で航空券+7泊8日ホテル付き、GW期間中にしては安い方だと思う。
朝の関西国際空港。marimekkoのウニッコ柄に塗装されたエアバスA330型機で、ヘルシンキ経由のコペンハーゲンまで。
コペンハーゲン着。経由地のヘルシンキで空港内をうろうろしていたらいつの間にか乗り継ぎゲート外に出ていた。マジで焦った。日本からの便が到着した後は日本人専用のゲートが作られるのでおとなしくそこに並ぼう。
コペンハーゲン中央駅内に併設のMADスーパーでコーヒーを購入。かなり浅煎りで酸味が強く、個人的に口に合わなかった。フィンのコーヒーも似た味だったので、北欧のコーヒーの特徴なのか?
ちなみに、到着初日の晩御飯は中央駅チボリ側出口にある屋台のケバブ屋にした。殺人的な物価の高さを誇るデンの飲食店の中でも割と安かったと思う。店の近くでケバブを食べてると、謎の中国人に中国語で話しかけられた。
日本人観光客をちらほら見かけたのも印象的だった。初日に気づいただけでも女の子3人組や一人旅の女の子もいた。3人組のグループとはホテルまで一緒だったのには驚いた。なんという偶然。もしかして同じ旅行会社経由でした?
2日目。コペン中央駅のセブンイレブン。駅の外には日本のパン屋チェーンのアンデルセンも出店している。
電車でオスターポート駅まで。
デンの電車は車幅が広く、ベビーカーや自転車でも余裕で乗り込める。輪行バッグを持ち込むだけでも煙たがられる日本とは大違いで羨ましい。
オスターポート駅前の駐輪場。あまり日本と変わらない?
市内にはこの黄色いゴミ箱がいたるところに設置されている。目立って便利だしなんとなくおしゃれである。
カステレット要塞周辺はのどかで静か。小さい子連れの夫婦が散歩していた。
はい、人魚像。日本の一般的な人魚と違うのは二本足なところ。両足のかかとからひれがそれぞれ生えています。でもこれ普通にバタ足した方が速く泳げそう。。
人魚像近くでコーヒーを売るおばちゃん。屋台風だが装備は本格的っぽい。一杯30 DKK (500円)程度でデンにしては高め。場所が場所だけに観光客価格である。
デンマークデザイン美術館へ。館内は写真OKらしいが、奇妙な形をした椅子がたくさん展示されていて、予習不足の俺はあまり楽しめなかった。
おっぱい型の椅子
日本刀の鞘のコレクションらしい。詳細は不明。
フレデリクス教会。今回のデン旅行で一番きれいだったもののひとつ。通りがかっただけで、その霊圧に吸い寄せられてしまった。光の加減が恐ろしく綺麗だよね!
ニューハウン。自転車道に駐車してはいけない、この常識ってあまり日本では浸透してないよね。
pyalgotrade
最近pythonでシストレ的なものをやろうとしているんだけど、この土日は使うライブラリをどうするか、色々触っただけで終わってしまった。とりあえず
・zipline
・quantopian
・pyalgotrade
を触ってみたが、今のところpyalgotradeが有力候補になりそう。ドキュメントの見やすさ(英語読めないけど)や自由度は一番高い気がする。Rubyで始める…は個別トレードの詳細が結果に表示されないようだった。
ただし、pyalgotradeはpython2.*系しか対応しておらず、python3.*系に移植しようと色々探してみたが駄目だったのでその点は注意。2to3toolやネットに転がってる非公式のpython3版でもダメだった。
とりあえずpython2.7 / pyalgotradeで進めてみることにしようと思う。
しばらくは公式のチュートリアルを進めてみよう。