<Python, pandas, items> DataFrameの要素を1つづつ取り出す。

データフレームDataFrameの要素を1つづつ取り出す方法。 df.itemsか、df.iteritems (どっちも同じっぽい)

まずはデータフレーム作成。

In [44]: import pandas as pd

In [45]: import numpy as np

in [52]: df = pd.DataFrame(np.random.randn(5,3))

In [54]: df.columns = list('abc')

In [55]: df.index = list('12345')

In [56]: df.head()
Out[56]: 
          a         b         c
1 -0.829961  0.773827  1.231567
2 -0.361747  0.059636  0.879749
3  0.620062  0.870305  2.227510
4 -0.074908 -0.127938 -0.125080
5  0.873882 -0.674697  0.838548

で、要素取り出しのループ処理。
itemsを使うと、カラム単位で要素が順に送り出されてくる。
各要素は配列array状態で出てくるが、ループの順番の番号を配列[0]に入れて返してくる。

In [57]: for i in df.items():
    ...:     print(i)
    ...:     
('a', 1   -0.829961
2   -0.361747
3    0.620062
4   -0.074908
5    0.873882
Name: a, dtype: float64)
('b', 1    0.773827
2    0.059636
3    0.870305
4   -0.127938
5   -0.674697
Name: b, dtype: float64)
('c', 1    1.231567
2    0.879749
3    2.227510
4   -0.125080
5    0.838548
Name: c, dtype: float64)

なので、要素index指定でさらに細かく指定できる。

In [58]: for i in df.items():
    ...:     print(i[1])
    ...:     
1   -0.829961
2   -0.361747
3    0.620062
4   -0.074908
5    0.873882
Name: a, dtype: float64
1    0.773827
2    0.059636
3    0.870305
4   -0.127938
5   -0.674697
Name: b, dtype: float64
1    1.231567
2    0.879749
3    2.227510
4   -0.125080
5    0.838548
Name: c, dtype: float64

In [59]: for i in df.items():
    ...:     print(i[1][1])
    ...:     
-0.361746546144
0.0596364186067
0.879749063219

In [60]: for i in df.items():
    ...:     print(i[1][0])
    ...:     
-0.829960786524
0.773827192285
1.23156687174

特定カラムを選択した場合は、

In [61]: for i in df.a.items():
    ...:     print(i)
    ...:     
('1', -0.82996078652431016)
('2', -0.36174654614421736)
('3', 0.62006245997384801)
('4', -0.074908061386246214)
('5', 0.87388215398298885)

In [62]: for i in df.a.items():
    ...:     print(i[1])
    ...:     
-0.829960786524
-0.361746546144
0.620062459974
-0.0749080613862
0.873882153983

マニュアルは下記。

Essential Basic Functionality — pandas 0.16.1-62-g1d87174 documentation

ついでに過去記事も。

nekoyukimmm.hatenablog.com