- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 機械学習/Pythonでデータ分析する次の一歩(データ分析支援ライブラリー、pandas編) へ行く。
- 1 (2017-08-29 (火) 12:12:49)
- 2 (2017-08-29 (火) 17:24:39)
- 3 (2017-08-31 (木) 11:55:53)
- 4 (2017-09-02 (土) 17:06:18)
目次 †
はじめに †
pandasはデータ分析支援ライブラリーです。
Pythonでデータ分析をするときに、機械学習の部分はscikit-learnでやりますが、機械学習のための前処理をするときに、pandasを使うととても便利です。
参考書としては、次の本がオススメです。
シリーズとデータフレーム †
pandasの基本は、シリーズ (Series) とデータフレーム (DataFrame) と呼ばれるデータ構造です。
シリーズは、(一次元)配列にインデックスが付いたもので、pandas.Seriesクラスのオブジェクトとして表されます。
データフレームは、二次元配列の行と列にインデックスが付いたもので、pandas.DataFrameクラスのオブジェクトとして表されます。
データフレームの列をシリーズとして取り出すことができますので、シリーズも使わないことはありませんが、データ分析するためにはデータフレームを理解することが重要です。
CSVファイルからデータフレームを作る †
データ分析をするときはデータをファイルから読み込むことになりますが、pandasには、read_csv関数というCSVファイルを読み込んでデータフレームを作ってくれる関数があります。
例えば、次のような data.csv という名前のCSVファイルを考えてみましょう。
import pandas as pd
これを読み込んでデータフレームを作るには、次のようにread_csv関数を使います。
,X1,X2,X3,Y 1,t,1.0,1.2,+ 2,t,0.9,0.8,- 3,f,0.9,1.1,+ 4,f,0.8,1.0,-
index_colオプションは、行(データ)のインデックスを表す列番号を指定します。
すると、見出し(インデックス)付きの表の形になります。
df = pd.read_csv('data.csv', index_col=0)
X1 | X2 | X3 | Y | |
1 | 0.1 | 1.0 | 1.2 | + |
---|---|---|---|---|
2 | 0.2 | 0.9 | 0.8 | - |
3 | 0.1 | 0.9 | 1.1 | + |
4 | 0.3 | 0.8 | 1.0 | - |
データフレームから説明変数を取り出す †
データフレームから説明変数を取り出すには、データフレームのdrop関数を使って目的変数を取り除きます。 説明変数はscikit-learnにnumpy.ndarrayで渡しますので、values属性に格納されている配列を取り出します。
df
drop関数は、行と列、どちらを取り除くのにも使えるので、列を取り除く時にはaxisオプションを 1 に指定します。
データフレームから目的変数を取り出す †
データフレームから目的変数を取り出すには、目的変数の列のインデックスを指定します。 目的変数もscikit-learnにnumpy.ndarrayで渡しますので、values属性に格納されている配列を取り出します。
df.dtypes