それでは実際にデータを取り込む方法を紹介しましょう。その前に、データを操作したり分析したりするのに利用するユーザーインターフェイス(シェル)について説明します。ここでは、本連載第2回で解説した環境を前提に解説を進めます。
前回必要なモジュールをセットアップした、「IPython」というPythonのためのインターフェイスを使います。IPythonは、Python標準のインターフェイスよりも高機能で、OSのコマンドも透過的に扱うことができ、また本連載の次回以降で詳しく説明する予定の「NumPy」や「Matplotlib」といったパッケージとの親和性にも優れています。特にLinuxのbashなどで、履歴やタブキーを使った補完機能を使いこなしている方には非常に重宝します。
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」コマンドを使うと、処理履歴を参照できます。アンダースコア「_」では、直前の出力を参照可能です。
下の例(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コマンドを使うと、コマンドラインで実行した履歴をファイルに保存することもできます。以下の例では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.