pandas-indexの階層構造-
- 作者: Bill Lubanovic,斎藤康毅,長尾高弘
- 出版社/メーカー: オライリージャパン
- 発売日: 2015/12/01
- メディア: 単行本(ソフトカバー)
- この商品を含むブログ (3件) を見る
目次
前提条件
OS:Windows 10 64-bit, version 1607
Anaconda 4.4.0(Python 3.6 version 64-bit)インストール
NumPyのインストール
手順概要
1.コマンドプロンプトでIPython Notebookを起動します。
2.データの並び替えと順番
手順
1.コマンドプロンプトでIPython Notebookを起動します。
ipython notebook
2.データの並び替えと順番
2.1.numpy、panadasとpandasからSeriesとDataFrameをインポートします。
import numpy as np from numpy.random import randn import pandas as pd from pandas import Series,DataFrame
2.2.Seriesを作成します。
ser=Series(randn(6),index=[[1,1,1,2,2,2],['a','b','c','a','b','c']]) ser
Out:
1 a -1.345709 b -1.219113 c 0.739873 2 a -1.211379 b 1.146896 c 0.525995 dtype: float64
2.3.indexを表示します。
ser.index
Out:
MultiIndex(levels=[[1, 2], ['a', 'b', 'c']], labels=[[0, 0, 0, 1, 1, 1], [0, 1, 2, 0, 1, 2]])
2.4.indexを指定してSeriesを表示します。
ser[1]
Out:
a -1.345709 b -1.219113 c 0.739873 dtype: float64
2.5.2階層目のindexを指定してSriesを表示します。
ser[:,'a']
Out:
1 -1.345709 2 -1.211379 dtype: float64
2.6.unstackを用いてSeriesからDataFrameに変換します。
dframe=ser.unstack() dframe
Out:
a b c 1 -1.345709 -1.219113 0.739873 2 -1.211379 1.146896 0.525995
2.7.DataFrameからSeriesに変換します。
dframe.unstack()
Out:
a 1 -1.345709 2 -1.211379 b 1 -1.219113 2 1.146896 c 1 0.739873 2 0.525995 dtype: float64
2.8.転置してからDataFrameをSeriesに変換します。
dframe.T.unstack()
Out:
1 a -1.345709 b -1.219113 c 0.739873 2 a -1.211379 b 1.146896 c 0.525995 dtype: float64
2.9.DataFrameを作成します。
dframe2=DataFrame(np.arange(16).reshape((4,4)), index=[['a','a','b','b'],[1,2,1,2]], columns=[['NY','NY','LA','SF'],['cold','hot','hot','cold']]) dframe2
Out:
NY LA SF cold hot hot cold a 1 0 1 2 3 2 4 5 6 7 b 1 8 9 10 11 2 12 13 14 15
2.10.indexに名前を付けます。
dframe2.index.names=['INDEX_1','INDEX_2'] dframe2
Out:
NY LA SF cold hot hot cold INDEX_1 INDEX_2 a 1 0 1 2 3 2 4 5 6 7 b 1 8 9 10 11 2 12 13 14 15
2.11.列に名前を付けます。
dframe2.columns.names=['Cities','Temp'] dframe2
Out:
Cities NY LA SF Temp cold hot hot cold INDEX_1 INDEX_2 a 1 0 1 2 3 2 4 5 6 7 b 1 8 9 10 11 2 12 13 14 15
2.12.列の階層を入れ替えます。
dframe2.swaplevel('Cities','Temp',axis=1)
Out:
Temp cold hot cold Cities NY NY LA SF INDEX_1 INDEX_2 a 1 0 1 2 3 2 4 5 6 7 b 1 8 9 10 11 2 12 13 14 15
2.13.sortlevel(X)は非推奨のようです。sort_index(level=X)を使いましょう。
dframe2.sortlevel(1)
2.14.2階層目でsortします。
dframe2.sort_index(level=1)
Out:
Cities NY LA SF Temp cold hot hot cold INDEX_1 INDEX_2 a 1 0 1 2 3 b 1 8 9 10 11 a 2 4 5 6 7 b 2 12 13 14 15
2.15.2階層目でsortし、1階層目でsortします。元のDataFrameに戻ったことが確認できましたでしょうか?
dframe2.sort_index(level=1).sort_index(level=0)
Out:
Cities NY LA SF Temp cold hot hot cold INDEX_1 INDEX_2 a 1 0 1 2 3 2 4 5 6 7 b 1 8 9 10 11 2 12 13 14 15
2.16.列の名前と列(縦軸)を指定して和を求めます。
dframe2.sum(level='Temp',axis=1)
Out:
Temp cold hot INDEX_1 INDEX_2 a 1 3 3 2 11 11 b 1 19 19 2 27 27
Pythonではじめる機械学習 ―scikit-learnで学ぶ特徴量エンジニアリングと機械学習の基礎
- 作者: Andreas C. Muller,Sarah Guido,中田秀基
- 出版社/メーカー: オライリージャパン
- 発売日: 2017/05/25
- メディア: 単行本(ソフトカバー)
- この商品を含むブログを見る
参考:
udemy 実践Pythonデータサイエンス
- 作者: 辻真吾
- 出版社/メーカー: 技術評論社
- 発売日: 2010/04/24
- メディア: 大型本
- 購入: 19人 クリック: 199回
- この商品を含むブログ (59件) を見る