<Python, pandas> DataFrame.items()について。

DataFrame.items() について。
これは、列columnを順に送り込んでくる、、ということに はたと 気付いた。

DataFrameを初期化する時、下記書き方がある。

In [24]: df = pd.DataFrame({
   ....: 'c1' : [1,2,3],
   ....: 'c2' : [3,4,5],
   ....: 'c3' : [5,6,7]
   ....: })

これって、Seriesつうか、Dictionaryを順にcolumnに投入している。

In [25]: df
Out[25]:
   c1  c2  c3
0   1   3   5
1   2   4   6
2   3   5   7

で、items()すると、

In [31]: for c in df.items():
   ....:     print(c)
   ....:
('c1', 0    1
1    2
2    3
Name: c1, dtype: int64)
('c2', 0    3
1    4
2    5
Name: c2, dtype: int64)
('c3', 0    5
1    6
2    7
Name: c3, dtype: int64)

で、column名を別に受け取りたければ、

In [30]: for c, col in df.items():
    print(c)
    print(col)
    print('-----')
   ....:
c1
0    1
1    2
2    3
Name: c1, dtype: int64
-----
c2
0    3
1    4
2    5
Name: c2, dtype: int64
-----
c3
0    5
1    6
2    7
Name: c3, dtype: int64
-----

なるほど、、、
で、column名をキーにしたDictを作るには、

In [32]: [{ c : col.tolist()} for c,col in df.items()]
Out[32]: [{'c1': [1, 2, 3]}, {'c2': [3, 4, 5]}, {'c3': [5, 6, 7]}]

なるほど~、、、
下記の過去記事と合わせると、だいぶわかってきた気がするね。。。

過去記事。 nekoyukimmm.hatenablog.com