目次

はじめに

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)
X1X2X3Y
10.11.01.2+
20.20.90.8-
30.10.91.1+
40.30.81.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

このページはまだ書きかけです。

トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS