連載
» 2013年06月25日 18時00分 公開

ITエンジニアのためのデータサイエンティスト養成講座(3):データを取り込む・格納するための方法を理解する (2/4)

[中林紀彦,日本アイ・ビー・エム]

IPythonの基本操作を覚えよう

 それでは実際にデータを取り込む方法を紹介しましょう。その前に、データを操作したり分析したりするのに利用するユーザーインターフェイス(シェル)について説明します。ここでは、本連載第2回で解説した環境を前提に解説を進めます。

 前回必要なモジュールをセットアップした、「IPython」というPythonのためのインターフェイスを使います。IPythonは、Python標準のインターフェイスよりも高機能で、OSのコマンドも透過的に扱うことができ、また本連載の次回以降で詳しく説明する予定の「NumPy」や「Matplotlib」といったパッケージとの親和性にも優れています。特にLinuxのbashなどで、履歴やタブキーを使った補完機能を使いこなしている方には非常に重宝します。

IPython操作の基本

 IPythonを起動するには、前回も説明したように、コマンドプロンプトで以下のコマンドを実行します。

C:\work>ipython --pylab

 IPythonでは、コマンドラインからインタラクティブにPythonコードを実行できます。

 IPythonの内部ではGnu readlineのライブラリが使われているので、キーボードショートカットや、コマンド・ファイル名・オブジェクト名などの補完にも対応しています。キーバインドはbashと同じです。cd、pwd、lsといった単純なシェルコマンドもIPythonで実行できます。下の例では、IPythonのシェルコマンドを使っています。

In [1]: cd c:\work
c:\work
In [2]: pwd
Out[2]: u'c:\\work'
In [3]: ls
 ドライブ C のボリューム ラベルがありません。
 ボリューム シリアル番号は XXXX-XXXX です
 c:\work のディレクトリ
2013/06/04  23:01    <DIR>          .
2013/06/04  23:01    <DIR>          ..
2013/06/04  22:13             1,309 data.csv
2013/06/04  20:49            28,672 gt010102.xls
2013/06/04  23:33               182 hist.py
2013/06/04  22:01            78,638 table1.csv
2013/06/04  22:01            96,011 table2.csv
               5 個のファイル             470,229 バイト
               2 個のディレクトリ  38,374,842,368 バイトの空き領域

マジックコマンドとは?

 IPythonには、%が頭に付いている“マジックコマンド”と呼ばれる特別な関数がいくつか用意されていて、インタラクティブな分析に役立ちます。例えば「%paste」コマンドを使うと、クリップボードにあるコードをペーストして実行可能です。ファイルに保存してあるスクリプトは、「%run」コマンドで実行できます。マジックコマンドは、ユーザーが独自に定義することも可能です。それにはIPythonのマニュアル「Using IPython for interactive work」が参考になります。

コマンドや関数のヘルプを表示する:「?」「??」

 コマンドや関数の前後どちらかに「?」と付けると、そのコマンドや関数の使い方が表示されます。また「??」を付けると、ソースコードが表示されます。下のサンプルでは、pd.read_csvという関数のヘルプを表示しています。

In [2]: pd.read_csv?
Type:       function
String Form:<function read_csv at 0x04319BF0>
File:       c:\python27\lib\site-packages\pandas\io\parsers.py
Definition: pd.read_csv(filepath_or_buffer, sep=',', dialect=None, compression=N
one, doublequote=True, escapechar=None, quotechar='"', quoting=0, skipinitialspa
ce=False, lineterminator=None, header='infer', index_col=None, names=None, prefi
x=None, skiprows=None, skipfooter=None, skip_footer=0, na_values=None, true_valu
es=None, false_values=None, delimiter=None, converters=None, dtype=None, usecols
=None, engine='c', delim_whitespace=False, as_recarray=False, na_filter=True, co
mpact_ints=False, use_unsigned=False, low_memory=True, buffer_lines=None, warn_b
ad_lines=True, error_bad_lines=True, keep_default_na=True, thousands=None, comme
nt=None, decimal='.', parse_dates=False, keep_date_col=False, dayfirst=False, da
te_parser=None, memory_map=False, nrows=None, iterator=False, chunksize=None, ve
rbose=False, encoding=None, squeeze=False)
(中略)
Returns
-------
result : DataFrame or TextParser

履歴を参照する:「%history」「_」

 「%history」コマンドを使うと、処理履歴を参照できます。アンダースコア「_」では、直前の出力を参照可能です。

 下の例(In [4])では、アンダースコアを3つ付けているので、3つ前の結果を参照しています。アンダースコアの後に行番号を付けると、その行の結果を参照できます。以下の例の5行目(In [5])では、3行目の「1*3」の結果である「3」を参照しています。

In [1]: 1*2
Out[1]: 2
In [2]: 1*3
Out[2]: 3
In [3]: 1*4
Out[3]: 4
In [4]: ___
Out[4]: 2
In [5]: _3
Out[5]: 4
In [6]: %history
1*2
1*3
1*4
___
_3
%history

履歴をファイルに保存する:「%save」

 %saveコマンドを使うと、コマンドラインで実行した履歴をファイルに保存することもできます。以下の例では1行目から10行目までのコマンドの履歴を、「hist.py」というファイルに保存します。

In [10]: %save hist.py 1-10

その他のマジックコマンド

 よく使うマジックコマンドを、下の表にまとめました。

コマンド 説明
%lsmagic 利用できるマジックコマンドを表示する
%hist または %history コマンドの履歴を表示する
%paste クリップボードのコードをペーストして実行する
%run ファイルに保存されているスクリプトを実行する
%time 単一ステートメントの実行時間を測定し表示する
%timeit ステートメントを複数回実行して平均実行時間を表示する
%save コマンドの実行履歴をファイルに保存する
%bookmark ディレクトリをブックマークする
%reset 変数や名前空間などをクリアする
よく使われるIPythonのマジックコマンド

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。