Pandas でデータフレームを作ってみよう

このページでは、Pandas を使ってデータフレームを作成する方法を紹介します。

Series (1 次元の値のリスト) を作成する

pd.Series() を用いて、1 次元のリスト (Series, シリーズと呼ばれます) を作成します。

>>> # 数値で構成される Series を作成
>>> s = pd.Series([1,3,5,np.nan,6,8])
>>> s
0     1
1     3
2     5
3   NaN
4     6
5     8
dtype: float64

>>> # 日付の Series を作成
>>> dates = pd.date_range('20130101', periods=6)
>>> dates
DatetimeIndex(['2013-01-01', '2013-01-02', '2013-01-03', '2013-01-04',
               '2013-01-05', '2013-01-06'],
              dtype='datetime64[ns]', freq='D')

データフレームを作成する

それでは、データフレームを作成してみましょう。本例では、A~Fの各列に数値、文字列、日付、Numpy の行列などを格納します。

>>> df = pd.DataFrame({ 'A' : 1.,
                        'B' : pd.Timestamp('20130102'),
                        'C' : pd.Series(1,index=list(range(4)),dtype='float32'),
                        'D' : np.array([3] * 4,dtype='int32'),
                        'E' : pd.Categorical(["test","train","test","train"]),
                        'F' : 'foo' })

>>> df
   A          B  C  D      E    F
0  1 2013-01-02  1  3   test  foo
1  1 2013-01-02  1  3  train  foo
2  1 2013-01-02  1  3   test  foo
3  1 2013-01-02  1  3  train  foo

Numpy の 行列からデータフレームを作成する

Numpy で作成した行列をデータフレームに変換することもできます。本例では、 6 x 4 の 2 次元の行列からデータフレームを作成し、各列に A, B, C, D という名前を付与します。

>>> matrix = np.random.randn(6,4)
>>> matrix
array([[-0.62613284, -0.18401896,  0.36230433,  0.25385535],
       [-0.52775779, -1.04001947, -0.70918754, -0.42403257],
       [ 0.66380938,  1.5464776 , -0.88366703, -0.25407405],
       [ 0.90132314, -0.74399435, -2.41854429,  0.01882765],
       [-0.09548835,  0.59397054, -0.76961208, -0.89502256],
       [ 0.21945467, -1.21903131, -1.74845886,  1.99341913]])

>>> df2 = pd.DataFrame(matrix, columns=list('ABCD'))
>>> df2
          A         B         C         D
0 -0.626133 -0.184019  0.362304  0.253855
1 -0.527758 -1.040019 -0.709188 -0.424033
2  0.663809  1.546478 -0.883667 -0.254074
3  0.901323 -0.743994 -2.418544  0.018828
4 -0.095488  0.593971 -0.769612 -0.895023
5  0.219455 -1.219031 -1.748459  1.993419

ディクショナリからデータフレームを作成する

Python のディクショナリ (Python 以外のプログラミング言語ではハッシュまたは連想配列とも呼ばれます) からデータフレームを作成には、from_dict() メソッドを利用します。

>>> import pandas as pd
>>> import numpy as np
>>> a_values = [1, (2, 3, 4, 5]
>>> b_values = np.random.rand(5)
>>> c_values = ["apple", "banana", "strawberry", "peach", "orange"]
>>> my_dict = {"A": a_values, "B": b_values, "C":c_values}
>>> my_dict
{'A': [1, 2, 3, 4, 5], 'B': array([ 0.11306604,  0.07231923,  0.87799638,  0.04161152,  0.55345912]), 'C': ['apple', 'banana', 'strawberry', 'peach', 'orange']}

>>> my_df = pd.DataFrame.from_dict(my_dict)
>>> my_df
   A         B           C
0  1  0.113066       apple
1  2  0.072319      banana
2  3  0.877996  strawberry
3  4  0.041612       peach
4  5  0.553459      orange

それでは、続いて、作成したデータフレームを操作してみましょう。

参考・ソースコード出典: 10 Minutes to pandas — pandas 0.18.0 documentation