新・クマックマのダラダラダイアリー

新・クマックマのダラダラダイアリー

今日も元気に、のび~のびと!

Python + pandas で、CSVファイルの出力をしてみる(使用データは浦和レッズの動員観客数)

※今までおさらいは、コチラ。

 CSVの読み込みまではできました。

sandplover-petro.hatenablog.com

 

さて、今回やりたいことはというと。

 

複数の入力ファイル(CSVファイル)を、

1つの出力ファイル(CSVファイル)にまとめること。

 

素直に考えたら、こんな感じで

処理を組めばよいかと(全然難しいものではない)

 

1.入力ファイルを取り込む際にループをかける

2.入力ファイルのデータを、どっかに格納しておく

3.2で作った ファイルを用いて、出力ファイルを作る。

 

てなわけで、元ネタを考えることに。

スペインサッカーネタもヨイのだが、前回のネタのラージョ・バジェカーノは、

直近1年のデータしかサイトに貯めこんでないので×。

 

浦和レッズのサイトから抽出することも考えたが、

全部PDFファイルなので、論外。てか、なんでそんなことするんだか。。。

 

仕方がないので、Jリーグ公式サイトから、浦和レッズの公式試合の

観客数をダウンロード。色々突っ込みたくならサイトだが、こればっかりは

仕方がない。。

 

てなわけで、こんな感じでデータを引っ張ってきた。

浦和レッズの試合の入場者数一覧。

2012年分と、2013年分の2つを引っ張ってきた。

(画像は2012年の抽出時)

f:id:sandplover_petro:20180604233353j:plain

 

Jリーグ公式の項目には、年がないので(それはそれでどうかと思う)、

まずは項目に「年」を追加。ついでに、「年月日」も追加。

f:id:sandplover_petro:20180604234238j:plain

 

でもって、抽出対象は、浦和レッズホームの試合としました(最近どんな感じで観客動員数が減っているかも知り合いし)。

 

処理を流すと、ファイルがこんな感じで出来上がります。

f:id:sandplover_petro:20180604235101j:plain

 

出力ファイルは、浦和レッズのホームの試合を抽出したものです。

 

グラフに表示したり、DBに繋いだりするのは、まだ先のことになりそうではあるものの、

思っていたよりもさくっとできた感がする(そこまで難しくない言語ではあるが)。

 

さて、DBは何を入れようか?

MySQLは入れ飽きてる感があるし、PostgreSQLは個人的にそんなに好きではない。

MariaDBでちょいといろいろやってみるのもアリなんだけれど、

MongoDBとかのNOSQLも、折角の機会なので使ってみたい。

さぁて、どのDBを使おうかな?

 

今日は眠いんで、ここらへんまでに。

 

Python + pandas で、簡単なデータ分析をしてみる(使用データはラージョ・バジェカーノ)

【前回までのあらすじ】

先日、Pythonの実行結果をWeb上で確認するべく、

Web開発ツールの Jupyter Notebook というツールを

インストールし、すごく軽い動作確認を行った。

(詳しくは、以下のリンクを参照)

sandplover-petro.hatenablog.com

 

で、 今回は、一歩進んだ動作確認ということで

サードパーティのパッケージをインストールし、少し動かすことに。

 

 

今回使用したのは、「pandas」というパッケージ。

データ読み込み、データ加工、データ抽出などに強いパッケージらしい。

前にいた会社で「pandasを使ってPythonで処理を」とかいう話があったので、

密かに気になっていたことは内緒で(笑)。

 

今回のデータは、2シーズンでスペイン1部への復帰を決めたラージョ・バジェカーノ

年間選手成績を使ってみることに(動作確認なので、楽しんでやらんといかんのです)。

データは、ラージョ・バジェカーノのサイトから拝借。

f:id:sandplover_petro:20180530000546j:plain

 

パッケージのインストールは、pip3 install pandas で簡単に完了。

(面倒なので、画面キャプチャは省略)

 

次は、実行環境に「pandas」をインポート。これは、ほぼお約束なので、あれこれ言わずに実行。

f:id:sandplover_petro:20180530000843j:plain

 

そして、ファイルオープン!

今回は、TSVファイル(タブ区切りテキストファイル)だったため、

read_table() っていう構文を使用。

CSVファイルだったら、「csv_open()」という構文を使用。

f:id:sandplover_petro:20180530001159j:plain

 

そして、どんな感じで開くのかを指定する。

デフォルトでは5行しか開けないので、今回は50行を開こうかな、と。

f:id:sandplover_petro:20180530001515j:plain

 

そして、開いてみたらこんな感じに。うん、書籍とよく似てる画面だ(そりゃそうだ)。

抽出元がスペインのサイトなので、ヘッダがスペイン語なのはご愛嬌(笑)。

f:id:sandplover_petro:20180530001918j:plain

これを見てるだけでも色々見えてくるのですが、

ちょっとひとひねりして

「出場時間が1,820分以上の選手を抽出」っていうのをしてみることに。

なお、表示項目は、背番号、選手名、出場試合数、出場時間、ゴール、アシストと設定。

※スペイン2部リーグは、全部で42試合あります。

 42試合のうち半分以上の時間(1,820分)に出場している主力と思しき選手を調べよう!

 っていうノリでございます。

f:id:sandplover_petro:20180530002653j:plain

抽出されたのは、以下の10選手。

f:id:sandplover_petro:20180530002922j:plain

ざっくり分析すると、11人中10人がシーズンの半分にフル出場していることが

わかります(ざっくりすぎる気もしますが)。

 

細かく見るのであれば、1試合あたりのプレー時間なんてのを出してあげれば、

フル出場が多かったのか、はたまた途中出場(途中交代)が多かったのかということも

分析できるかな、と(多分)。

 

このデータを見るだけで、2017−2018シーズンのラージョ・バジェカーノは、

大砲(デ・トマス)、チャンスメーカー(エンバルバ)、それにトレホの3枚が

攻撃の要だったことが、なんとなくですがわかってきます。

 

余談ですが、ラージョは、他チームから届いたエンバルバへのオファーを蹴ったらしいです(そりゃそうだ)。

なお、デ・トマスは、レアル・マドリーからの借り物なので返却する方向になるはず。

(借りパクは、できっこないだろうし)

 

てなわけで、次の機会があったなら、

Jupyter Notebookで簡単なグラフも書けるらしいので、それを試そうかと

目論んでおります。

 

さあ、これがどこまで業務に使えるのかの見極めが悩ましい。。。

 

Python3.6と、Jupyter Notebookのインストール

わたくしめの持っているPC(Surface Pro無印をデュアルブート化したもの)で、

最近はやりの開発言語「Python」の勉強(またの名を動作確認)をしようと思い、

昼間に近くにできたコメダ珈琲店に。程よく座れてラッキーな感じ☆

 

ここのコメダ珈琲店は、全席に電源があるだけでなく、自前のwi-fiもとても感度がヨイ。

近くのモスバーガーは、自前のwi-fiがよく切れるので、それだけでも

色々と勉強しやすい環境だな、と。

 

そんな半ば優雅な環境で「さあ、これから」と思った矢先に、

想定していたWebエディタ「Jupyter Notebook」が動かなくなるという事象が発生。

 

コメダで優雅にお勉強」が「コメダでせっせと原因調査」に切り替わることに。。。

 

いろいろ調べてみたところ、

「Jupyter Notebook」は、Python3.6で動くものらしいことが判明。

 

デュアルブート化した際に選んだLinux(Elementary OS)は、

Ubuntu16.04はという古めのOSになるので、

最新のPython3.6はインストールできない(3.5まで)らしい。

 ※近々、Ubuntu18.04ベースで新しいバージョンがリリースされるという情報も

  以下のブログに紹介あり。

superjeter007.blog.jp

現在のバージョン(0.4) から、 5.0に変わるかも?!とのこと。

「0.4から5.0の間は、みんなすっ飛ばすんかい」というツッコミどころもあるのは、

言うまでもなし。 

 

ちなみにわたくしめがElementary OS を選んだ理由は、

Macと似たデザインが欲しかったため。

なので、「どのOSをベースにしてるか」という点を気にすることなく

Elementary OSを選んでいたことになる(笑)。

 

「Jupyter Notebook」がインストールできない(仮にインストールできてもkernelが死ぬ)と、

今持ってる参考書の環境ができなくなってしまうため、

Elementary OS 0.4に、Python3.6を無理くり入れる方法を模索することに。

 

QIitaの力を頼った結果、

特殊な方法でこの縛りをくぐり抜ける方法があることが判明。

Python3.6.0をUbuntu16.04に導入する。

 

「なんでできるの?」という疑問はさておき(あとで勉強します・・・)、

無事にPython3.6をインストール完了!よかったよかった。

 

でもって、おかげさまで開発環境の「Jupyter Notebook」も無事にインストールでき、

正常に動くことを確認!!!

 

Jupyter Notebookの動きは、こんな感じに(超ざっくり)。

 

まずは、In[ ]というフィールドに、コードを入れる。

f:id:sandplover_petro:20180526233621j:plain

 

でもって、「Shift」+「Enter」キーをクリックすると、

Out[ ] というフィールドに、こんな感じで結果を出してくれる。

f:id:sandplover_petro:20180526233720j:plain

 

In [ ] には、変数設定もできるらしい。

PI、radius という変数を設定し、「Shift」 + 「Enter」をクリック。

f:id:sandplover_petro:20180527001002j:plain

 

そして、実際の計算式を設定し、「Shift」+「Enter」をクリック。

ちなみに、 radius ** 2は、radius の2乗っていうこと。

f:id:sandplover_petro:20180527001044j:plain

 

そうすると、計算結果が出てくれる。

f:id:sandplover_petro:20180527001105j:plain

 

本格的な使い方はこれからではあるけれど、

ターミナル(Windowsではコマンドプロンプト?)を叩いてるよりは

全然イメージが沸くので、その点ではありがたいツールかな、と。

 

Jupyter Notebook内で変数を定義すると、その中では再利用が可能とのこと。

 

 

 

 

 

 

 

 

第30回春日部大凧マラソンを走ってみる

2017-2018シーズンの最後を飾る(であろう)、春日部ハーフマラソン

この大会は、2年前(2015年)に出場し、終盤撃沈したいわくつきの大会。。。

 

前回大会時の記事はコチラ。

sandplover-petro.hatenablog.com

 

というわけで、こんな感じの緩いノルマをあげました。

 1.必ず前回よりいいタイムで完走する。

 2.2時間以内で完走する。

 3.歩かない

 

結果として、ノルマは3つとも達成できました。

 

今回のタイムは、1時間58分06秒。

前回が2時間10分44秒だったので、12分38秒短縮したことになります。

 

ネットタイムに換算すると、1時間55分13秒。

前回は2時間8分08秒だったので、12分55秒短縮したことになります。

(あと13秒早ければ、1時間55分を切れたのに。。。)

 

まずは、コースから。

始めは道が割と狭いのでなかなかスピードは出しづらいですが、

8km付近で江戸川河川敷に出れば、走りやすいコースになります。

f:id:sandplover_petro:20180505171117j:plain

 

【前半(スタート~10kmくらい)】

最初の1kmは、アプリの計測開始が遅れたこともあったので、

キロ8分の表示となっています(実質は6分くらい)。

5kmまでは、前回と同じようなペース、

6km以降は前回よりも10秒くらい良いペースで走れています。

(前回は、ハーフの走り始めってこともあり、体も慣れてなかったのかと)

f:id:sandplover_petro:20180505171656j:plain

8km;

  給水をとったので、ちょいとタイムが落ちています。

 

10km地点付近;

  野田線高架下で沿道の子が配ってる飴を取り損ねて、取りに戻りました(汗)。

  ただ、この飴が単調な江戸川河川敷を走らせたといっても過言ではありません。

 

【後半(10kmくらい~ゴール)】

 前回は総じてキロ6分ペース(暑いのと風がすごく強かったので)でしたが、

今回は5分20秒~5分40秒ペースで走れました。

f:id:sandplover_petro:20180505171732j:plain

 

13km;

  給水でちょいとタイムが落ちています。

 

15km;

  しっかりめの給水をとったので、タイムが落ちています。

 

16km;

  江戸川河川敷の最後のほうで、ハイタッチをしたそうな子4人に

  「パン、パン、パン、パン」という感じでさっそうと?!したところ

  「かっこい~」と言われました。

  その成果+河川敷からの下りを使い、ペースが上がっています。

 

17km;

  給水タイムで「赤白がんばれ~!」と言われてテンションが上がりました。

  ただ「がんばれー」と言われるよりも数段頑張る気になれました(笑)。

  (注;この日は「縦の赤白」のユニを着ていた)

 

18km~19km;

  左足のふくらはぎがパンパンになり始めたため、

  ハイタッチをしたがっていそうな子たちのところに寄る以外は

  無理をしない走りで。給水所で水をふくらはぎにかけたので

  何とか乗り切れました。

 

~ゴールまで;

  足が流れないようにすることだけを意識してました(前に走ってた方の

  足が左右に流れているのを目の当たりにしたので)。多分ですが、

  少ない力を有効活用しようとしたのでペースが落ちずに済んだのかな、と

  いう自己分析でございます。

 

【自分自身の走りについて】

やっぱり、2年前とは違ったと。

2年前の大会以降、ハーフに10回くらい出て、体も慣れてきたので、

そこそこいいペース配分で走れてるなと感じました。

(多少は練習もしてるのも、あるとは思うのですが)

2018~2019シーズンは、フルマラソンに出てみてもよいのかもしれません。

 

【シューズについて】

この大会では、数か月前に買ったスボルメのシューズ「STRELLA」を履いて

走ってみました。

sandplover-petro.hatenablog.com

 

走っているうちに、靴がきつく感じることがありました。

足に正直というか、勝手に足が前に出る感覚は感じませんでした(靴に変な細工はしてない、という意味で)。

普段使いもOKな靴ということも考慮すると、

現時点では、本番というよりは練習に適したものかもしれません。

 

全ての靴に対していえるとは思うし、巧いことは言えないのですが、

「この靴でいい感じで走れる=フォーム等に無理してない証拠」というのが

強いのかなとも思いました。

 

【大会を通じて感じたこと】

この大会は「全国マラソン100選」に選ばれたそうですが、

その理由がなんとなくわかった気がしました。

どのマラソン大会もボランティアの皆様に支えられてるのですが、

給水所とかの中学生(だと思う)がすごくイキイキしてるんです。

やらされてる感がない、というか。

 

10,000人規模の大会では、組織だっていすぎるがために

イキイキ感があんまり、、、という大会もよくあるのですが、

ここの大会はそれを感じませんでした。

山形のさくらんぼマラソンと同じ匂いがするな、と走りながら思いました。

 

【参加賞と抽選会】

参加賞は、コチラでした。

バスタオルサイズのタオルでした。これは、案外使い道があるのでウレシイです。

 

で、空くじなしの抽選会もやっていました。

わたくしめはマグカップが当たったのですが、一緒に参加したどんぐりさんに

お願いをして、交換してもらいました。

交換した品物はコチラ!

第28回(前回参加した大会)の参加賞でした。

この年は不参加の方が多かったので、余ってしまっていても仕方ないとは思います。

この時にいただいたウエストポーチは、使い込んだ挙句壊れてしまったので

その補充用にちょうどよいかと(笑)。

小さいペットボトルも入るので、夏場の練習にはもってこい☆

 

 

シフト勤務の合間を縫って走ってみる(その2)

シフト勤務の合間を縫って、

春日部大凧マラソンに備えてささやかな走り込みをしております。

 

会社出勤前なので、あまり負荷はかけたくなかったのですが、

とりあえず10km近くは走ろうと思いました。

 

時間との兼ね合いもあり、走れたのは8.5km程度。

まぁ、走れただけよいでしょう、ということで(汗)。

 

走ったコースはというと、、、

4km付近に大きな下り坂と、6~7kmにダラダラとした上り(1kmで30メートル上る)があるコース。

 

コースはこんな感じ。

f:id:sandplover_petro:20180430232324j:plain

 

で、高低差はこんな感じ。

f:id:sandplover_petro:20180430232919j:plain

 

気温20度の中を、キロ5:20くらいで走れています。

まぁ、悪くない感じかとは思います。

 

あとは、脱水症状を起こさないようにすることと、

必要以上に水をとりすぎないことでしょうか。

(前回の春日部大凧マラソンでは、この2つをしでかしてえらい目にあったんで…)

 

 

 

シフト勤務の合間を縫って走ってみる

4月~5月初旬までは、変則的な勤務体系になるので

週に3日くらいは午後からの出社になっています。

 

これを利用して、少しだけ平日午前に走ってみようかと思いたちました。

平日に2回程度走れれば、5月のゴールデンウィークにある

春日部大凧マラソン(ハーフ)のトレーニングにもなりますし。

 

ていうわけで、走ってみました。

花粉もだいぶ和らいできたので、マスクなしでのランに戻りました。

そのかわり、走っていて暑いこと暑いこと。。。

 

そりゃ、冬じゃないんで暑いのは当たり前だし、

にも関わらず冬と同じ格好で走ってたら、そりゃ暑いにきまってます。。。

司馬遼太郎の「胡蝶の夢」の主人公、村田蔵六も似たようなことを言ってた気が。

 たしか、「夏は暑くて当たり前です」的な発言だったけど)

 

f:id:sandplover_petro:20180422002429j:plain

 

てなわけで、とりあえず7km走ってみました。

平均ペースがキロ5:16。春日部大凧マラソン(ハーフ)のスプリットは、

もうちょい落ちるとは思うのですが、まぁ安定してるかなと。

 

ちなみにシューズは、最近購入してみたスボルメのもので走りました。

タウンユースと兼ねているせいか、従来のシューズに比べて

足が自然に前に出る感じはないかな、という感じがしています。

ただ、これは自分のフォームの問題もあるかもしれないので、

何とも言えませんが。。。

 

ちなみに、スボルメのシューズを買った時のブログはコチラ。

 

シフト勤務の間は、午後からの仕事に影響のない範囲内で

走ろうと思います。

 

 

とりあえず読んでみようか、と(電車が好きな子はかしこくなる)

 

やっとこ基本情報試験が終わったんで(結果は野となれ山となれ・・・)、

とりあえず買ってた本が読めそうです。

 

で、今回読もうとしてる本はコチラ。

「電車が好きな子はかしこくなる」という本。

 

タイトルだけで判断して買っちゃいました(昔のCDのジャケ買いみたいな感じ)。

 

きかんしゃトーマス風に言うと

『「電車が好きな子はかしこくなる」、という本』てな

感じになるんでしょうか。。。

 

さて、なんでまたこの本を読もうかと思ったかというと、

最近、ウチの子がプラレールにはまりだしたことが一因なんです。

 

それにかこつけて電車好きにするべく(笑)、

その下準備の一冊として、ちょいと読んでみようと思った次第でございます。

さてと、どんな内容なんでしょうか。