
Advent Calendar 2013 - 2
Python で解析! - DataFrame - 1
環境構築はできたということで、 Pandas の中心となる DataFrame を取り上げる。
1. DataFrame の作成
DataFrame は、Excel の表、あるいはデータベースのテーブルのようなもの。ipython を使って試してみる。
$ ipython
ipython が起動したら、データの準備をする。
import pandas as pd
df = pd.DataFrame([
[10, 20, 30, 40, 500],
[15, 25, 35, 45, 550],
[18, 23, 37, 44, 450]
])
0 1 2 3 4
0 10 20 30 40 500
1 15 25 35 45 550
2 18 23 37 44 450
2. 平均値、中央値、合計値
基本的な統計量を求めてみる。まずは平均値。
df.mean()
0 14.333333
1 22.666667
2 34.000000
3 43.000000
4 500.000000
dtype: float64
次は中央値。
df.median()
0 15
1 23
2 35
3 44
4 500
dtype: float64
最後は合計値。
df.sum()
0 43
1 68
2 102
3 129
4 1500
dtype: int64
3. 縦横を入れ替える
行列の入れ替えは簡単にできる。
df.T
0 1 2
0 10 15 18
1 20 25 23
2 30 35 37
3 40 45 44
4 500 550 450
4. さらに、平均値、中央値、合計値
行列を入れ替えた上で、まずは平均値を。:
df.T.mean()
0 120.0
1 134.0
2 114.4
dtype: float64
次は中央値。
df.T.median()
0 30
1 35
2 37
dtype: float64
最後に合計。
df.T.sum()
0 600
1 670
2 572
dtype: int64
5. カラム名付きの DataFrame の作成
カラム名付きの DataFrame を作成してみる。
df = pd.DataFrame({
'a': [10, 15, 18],
'b': [20, 25, 23],
'c': [30, 35, 37],
'd': [40, 45, 44],
'e': [500, 550, 450]
})
a b c d e
0 10 20 30 40 500
1 15 25 35 45 550
2 18 23 37 44 450
定義時の表記と縦横が入れ替わっていることに注意。
6. カラム名で列データにアクセス
せっかく名前を付けたので、カラム名を使ってアクセスしてみる。
df['a']
0 10
1 15
2 18
Name: a, dtype: int64
プロパティとしてアクセスすることもできる。
df.a
0 10
1 15
2 18
Name: a, dtype: int64
7. そしてカラム毎の平均値、中央値、合計値
まずは、平均値。
df.b.mean()
22.666666666666668
中央値も。
df.b.median()
23.0
最後は合計値。
df['b'].sum()
68
今回はこんなところで。