- バックアップ一覧
- 差分 を表示
- 現在との差分 を表示
- ソース を表示
- 機械学習/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クラスのオブジェクトとして表されます。
データフレームの列をシリーズとして取り出すことができますので、シリーズも使わないことはありませんが、データ分析するためにはデータフレームを理解することが重要です。
データフレームを作る †
データ分析をするときはデータをファイルから読み込むことになりますが、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 | - |
行のインデックスを取り出す †
データフレーム・オブジェクトのindex属性に、行のインデックス・オブジェクトが格納されています。
df
df.dtypes
インデックス・オブジェクトのvalues属性には、インデックスの値がnumpy.ndarrayで格納されています。
X1 object X2 float64 X3 float64 Y object dtype: object
df.X1.astype('category').cat.codes
列のインデックスを取り出す †
データフレーム・オブジェクトのcolumns属性に、列のインデックス・オブジェクトが格納されています。
1 0 2 0 3 1 4 1 dtype: int8
df_cat = df df_cat.X1 = df.X1.astype('category').cat.codes df_cat.dtypes
行のインデックスと同様に、インデックス・オブジェクトのvalues属性には、インデックスの値がnumpy.ndarrayで格納されています。
X1 int8 X2 float64 X3 float64 Y object dtype: object
df_dum = pd.get_dummies(df) df_dum
このページはまだ書きかけです。