pandasのデータ操作に慣れる(1)

Python+金融 プロジェクト

Pandasのデータ操作の初歩についてまとめました。

無駄に長くなるのを避けるため、出力結果は一部加工していますことをご承知おきください

スポンサーリンク

とりあえず使ってみる

pandas_datareader で fred データベースから日経225のデータを取得してきて、データの操作をしてみようと思います。

datareader で fred データベースから日経225のデータを取ってくる

>>> import pandas_datareader as web
>>> N225 = web.DataReader('NIKKEI225','fred','1949/5/16')

これでDataFrameがダウンロードされたはず。

データ構造を確認

行数の確認

>>> len(N225)
17901

次元数の確認

>>> N225.shape
(17901, 1)

カラム情報の確認

>>> N225.info
<bound method DataFrame.info of             NIKKEI225
DATE                 
1949-05-16     176.21
...               ...
2017-12-25   22939.18

[17901 rows x 1 columns]>

データのサマリ

>>> N225.describe()
          NIKKEI225
count  17073.000000
mean    9522.514710
std     8372.907625
min       85.250000
25%     1480.160000
50%     8088.530000
75%    16124.190000
max    38915.870000

おぉ、便利。。。

カラム、インデックス

カラムを取得

>>> N225.columns
Index(['NIKKEI225'], dtype='object')

インデックスを取得

>>> N225.index
DatetimeIndex(['1949-05-16', '1949-05-17', '1949-05-18', '1949-05-19',
               '1949-05-20', '1949-05-23', '1949-05-24', '1949-05-25',
               '1949-05-26', '1949-05-27',
               ...
               '2017-12-12', '2017-12-13', '2017-12-14', '2017-12-15',
               '2017-12-18', '2017-12-19', '2017-12-20', '2017-12-21',
               '2017-12-22', '2017-12-25'],
              dtype='datetime64[ns]', name='DATE', length=17901, freq=None)

一部のデータを取り出す

head()やtail()で先頭または末尾のデータを取り出す。デフォルトは5つのデータが取り出される。

>>> N225.head()
            NIKKEI225
DATE                 
1949-05-16     176.21
1949-05-17     174.80
1949-05-18     172.53
1949-05-19     171.34
1949-05-20     169.20
>>> N225.head(1)
            NIKKEI225
DATE                 
1949-05-16     176.21
>>> N225.tail()
            NIKKEI225
DATE                 
2017-12-19   22868.00
2017-12-20   22891.72
2017-12-21   22866.10
2017-12-22   22902.76
2017-12-25   22939.18
>>> N225.tail(1)
            NIKKEI225
DATE                 
2017-12-25   22939.18

データを取り出す方法はいろいろあるけど、基本的にはixプロパティを使っておけばOKだと思う。
リーマンショックあたりのデータを取り出してみる。

>>> N225.ix["2008/10/14":"2008/10/28"]
            NIKKEI225
DATE                 
2008-10-14    9447.57
2008-10-15    9547.47
2008-10-16    8458.45
2008-10-17    8693.82
2008-10-20    9005.59
2008-10-21    9306.25
2008-10-22    8674.69
2008-10-23    8460.98
2008-10-24    7649.08
2008-10-27    7162.90
2008-10-28    7621.92

2008年10月のデータのみ取り出す。こんな使い方もできるみたい。

>>> N225.ix["2008-10"]
            NIKKEI225
DATE                 
2008-10-01   11368.26
2008-10-02   11154.76
2008-10-03   10938.14
2008-10-06   10473.09
2008-10-07   10155.90
2008-10-08    9203.32
2008-10-09    9157.49
2008-10-10    8276.43
2008-10-13        NaN
2008-10-14    9447.57
2008-10-15    9547.47
2008-10-16    8458.45
2008-10-17    8693.82
2008-10-20    9005.59
2008-10-21    9306.25
2008-10-22    8674.69
2008-10-23    8460.98
2008-10-24    7649.08
2008-10-27    7162.90
2008-10-28    7621.92
2008-10-29    8211.90
2008-10-30    9029.76
2008-10-31    8576.98

続く。。。

スポンサーリンク

フォローする