データフレーム

pandas は1次元データ構造のシリーズ(Series)と2次元データ構造のデータフレーム(DataFrame)を提供する。


In [1]:
# データフレームの基本的な使い方
import pandas as pd

# columnsオプションで列名を指定
df = pd.DataFrame([1,2,3],
                 columns=['value'])
df


Out[1]:
value
0 1
1 2
2 3

In [2]:
# タプルで配列を渡す
df = pd.DataFrame([
    ('apple', 100), ('oragne', 230), ('grape', 290), ('banana', 100)],
    columns=['name', 'price']
)
df


Out[2]:
name price
0 apple 100
1 oragne 230
2 grape 290
3 banana 100

In [3]:
# ディクショナリで配列を渡す
df = pd.DataFrame({
    'name': ['apple', 'orange', 'pear', 'peach'],
    'price': [120, 150, 230, 360],
    'order': [3, 8, 4, 5]
})
df


Out[3]:
name order price
0 apple 3 120
1 orange 8 150
2 pear 4 230
3 peach 5 360

In [4]:
# 列の追加
df['color'] = ['red', 'orange', 'green', 'pink']
df['total'] = df['order'] * df['price']
df


Out[4]:
name order price color total
0 apple 3 120 red 360
1 orange 8 150 orange 1200
2 pear 4 230 green 920
3 peach 5 360 pink 1800

In [5]:
# インデックスの追加
df.index = ['Apple', 'Orange', 'Pear', 'Peach']
df


Out[5]:
name order price color total
Apple apple 3 120 red 360
Orange orange 8 150 orange 1200
Pear pear 4 230 green 920
Peach peach 5 360 pink 1800

In [6]:
# データフレームの操作
# 列の選択
df['price']


Out[6]:
Apple     120
Orange    150
Pear      230
Peach     360
Name: price, dtype: int64

In [7]:
df[['price', 'color']]


Out[7]:
price color
Apple 120 red
Orange 150 orange
Pear 230 green
Peach 360 pink

In [8]:
# head, tail
df.head(2)


Out[8]:
name order price color total
Apple apple 3 120 red 360
Orange orange 8 150 orange 1200

In [9]:
# インデックスで指定
df[1:3]


Out[9]:
name order price color total
Orange orange 8 150 orange 1200
Pear pear 4 230 green 920

In [10]:
df.loc[['Apple', 'Pear']]


Out[10]:
name order price color total
Apple apple 3 120 red 360
Pear pear 4 230 green 920

In [11]:
# 条件による指定
df[df.price > 200]


Out[11]:
name order price color total
Pear pear 4 230 green 920
Peach peach 5 360 pink 1800