suitandtie

日記的な

日記だよ!でもアメリカに住んでる→日記なのに日付がずれる!→こまけぇこたぁいいんだよ!

Python データサイエンス講座 vol.4

またしても久しぶりになってしまったデータサイエンス学習シリーズ。もっと気合を入れてやれ、俺。

 

 


 


 


 

レクチャー16「indexの基本」

レクチャー17「indexを変える」

→Series内のindexを並べ替えたり、足したりする方法を学んだ。

 

レクチャー18「行や列を削除する」

レクチャー19「データを取り出す」

→DataFrame内の行や列をdropで削除する方法や、特定の行(index)や列(column)を抽出する方法を学んだ。

 

レクチャー20「形の違うデータの計算」

→異なる2つのDataFrame内の数値を足したり引いたりして1つのDataFrameを作る方法を学んだ。

 

レクチャー21「データの並べ替えと順番」

→Seriesをindexや各行の数値で並べ替えたりする方法を学んだ。

 

レクチャー22「データと統計量」

→任意のDataFrameの詳細(中央値や標準偏差値など)をdescribeを使って表示できる。また、株価のデータをyahooから引っ張ってきてそれでDataFrameを作り、株価の推移を描画したりヒートマップで相関図を作ったりする方法を学んだ。例えば、私が購入した経験のあるエクソン・モービル(ティッカーシンボル:XOM)、テスラ(ティッカーシンボル:TSLA)、アリババ(ティッカーシンボル:BABA)、アンダーアーマー(ティッカーシンボル:UA)のそれぞれの2015年の1日毎の株価をDataFrameで作ると、

 

import numpy as np

from pandas import Dataframe, Series
import pandas as pd

import pandas.io.data as pdweb

import datetime

 

prices = pdweb.get_data_yahoo(['XOM', 'TSLA', 'BABA', 'UA'],
start=datetime.datetime(2015,1,1),
end=datetime.datetime(2016,1,1))['Adj Close']

 

これで、pricesをリターンすると

 

 

 BABATSLAUAXOM
Date    
2015-01-02 103.599998 219.309998 33.445000 88.202638
2015-01-05 101.000000 210.089996 32.650002 85.789250
2015-01-06 103.320000 211.279999 32.110001 85.333174
2015-01-07 102.129997 210.949997 33.279999 86.197816
2015-01-08 105.029999 210.619995 34.134998 87.632548
2015-01-09 103.019997 206.660004 33.825001 87.509023
2015-01-12 101.620003 202.210007 33.564999 85.827257
2015-01-13 100.769997 204.250000 33.299999 85.513705
2015-01-14 99.580002 192.690002 32.875000 85.266663
2015-01-15 96.309998 191.869995 32.325001 84.525546
2015-01-16 96.889999 193.070007 32.599998 86.577878
2015-01-20 100.040001 191.929993 32.735001 86.549368
2015-01-21 103.290001 196.570007 33.290001 87.290492
2015-01-22 104.000000 201.619995 34.709999 88.240645
2015-01-23 103.110001 201.289993 34.910000 86.359340
2015-01-26 103.989998 206.550003 35.805000 87.185975
2015-01-27 102.940002 205.979996 35.980000 86.416347
2015-01-28 98.449997 199.369995 35.435001 83.565890
2015-01-29 89.809998 205.199997 36.400002 83.214338
2015-01-30 89.080002 203.600006 36.040001 83.062310
2015-02-02 90.129997 210.940002 35.974998 85.114643
2015-02-03 90.610001 218.360001 36.415001 87.651548
2015-02-04 90.000000 218.550003 36.785000 86.900926
2015-02-05 87.000000 220.990005 36.650002 87.756065
2015-02-06 85.680000 217.360001 37.055000 87.593322
2015-02-09 86.000000 217.479996 36.340000 87.650757
2015-02-10 87.260002 216.289993 36.685001 87.124245
2015-02-11 86.000000 212.800003 36.889999 86.731746
2015-02-12 87.099998 202.880005 36.974998 88.426179
2015-02-13 89.050003 203.770004 36.880001 89.383483
... ... ... ... ...

 

 

 

12月31まで続く「...」以降の数値は省略したけど、こんなんが表示できて大変気持ちがいい。また、

 

%matplotlib inline
prices.plot()

 

これで

 

 

f:id:suitandtie:20160801124318j:plain

 

 

こんなんが表示できてこれまた大変気持ちがいい。

 

レクチャー23「欠損値の扱い」

→0でもなく「そもそも値が存在しない」という意味である欠損値はNaN(Not a Numberの略)で表示される。null値とも言うのかな?その欠損値がDataFrame内に存在するのかを調べたりする方法を学んだ。

 

レクチャー24「indexの階層構造」

→行と列に階層構造を入れる方法や、それらの名前を変更したり入れ替えたりする方法を学んだ。

 

〜〜〜〜〜〜〜〜〜

 

こんな感じがここ最近までに進んだ範囲。合計104あるレクチャーの内、いまだ24...。もっと気合を入れてやれ、俺(本日2回目)。