<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]}]
なるほど~、、、
下記の過去記事と合わせると、だいぶわかってきた気がするね。。。