「.NET 開発基盤部会 Wiki」は、「Open棟梁Project」,「OSSコンソーシアム .NET開発基盤部会」によって運営されています。
数表の形式で保存されたデータを効率的に処理する機能を収録したライブラリ
操作するためのデータ構造と演算を提供
(Pythonから簡単に利用できるSQLの代替)
>pip install pandas
>>>import pandas as pd
Series型は、一次元の配列のオブジェクト
>>>pd.Series([3,7,10,13]) 0 3 1 7 2 10 3 13 dtype: int64
>>>numpy_array = np.array([3,7,10,13]) >>>pd.Series(numpy_array) 0 3 1 7 2 10 3 13 dtype: int64
>>>x=pd.Series([3,7,10,13])
>>>x[1] 7
>>>x >= 5 0 False 1 True 2 True 3 True dtype: bool
>>>x[x>=5]
配列の取り出し
>>>x.values array([ 3, 7, 10, 13], dtype=int64)
DataFrame?型は、テーブル形式のデータ構造
>>> pd.DataFrame({ ... 'xxx': ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff'], # 長さ: 6 ... 'yyy': [20, 34, 50, 12, 62, 22], # 長さ: 6 ... 'zzz':['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'] # 長さ: 6 ... }) xxx yyy zzz 0 aaa 20 AAA 1 bbb 34 BBB 2 ccc 50 CCC 3 ddd 12 DDD 4 eee 62 EEE 5 fff 22 FFF
>!pip install openpyxl
>>>df = pd.read_excel('hoge.xlsx')
→ 先頭・後尾
>>> df=pd.DataFrame({ ... 'xxx': ['aaa', 'bbb', 'ccc', 'ddd', 'eee', 'fff'], # 長さ: 6 ... 'yyy': [20, 34, 50, 12, 62, 22], # 長さ: 6 ... 'zzz':['AAA', 'BBB', 'CCC', 'DDD', 'EEE', 'FFF'] # 長さ: 6 ... }) >>> df xxx yyy zzz 0 aaa 20 AAA 1 bbb 34 BBB 2 ccc 50 CCC 3 ddd 12 DDD 4 eee 62 EEE 5 fff 22 FFF
>>>df.head()
>>>df.head(2)
>>>df.tail()
>>>df.tail(2)
(行列指定)
>>>df.iloc[1,0] 'bbb'
>df.loc[1,'xxx'] 'bbb'
>>>df.iloc[2] xxx ccc yyy 50 zzz CCC Name: 2, dtype: object
>>>df.iloc[[2]] xxx yyy zzz 2 ccc 50 CCC
>>>df.loc[:,'yyy'] 0 20 1 34 2 50 3 12 4 62 5 22 Name: yyy, dtype: int64
>>>df.loc[:,['yyy']] yyy 0 20 1 34 2 50 3 12 4 62 5 22
>>>df[['yyy']] yyy 0 20 1 34 2 50 3 12 4 62 5 22
>>>row=pd.DataFrame({ 'xxx': 'ggg', 'yyy': [45], 'zzz': 'GGG'}) >>> df=pd.concat([df,row],axis=0) >>> df xxx yyy zzz 0 aaa 20 AAA 1 bbb 34 BBB 2 ccc 50 CCC 3 ddd 12 DDD 4 eee 62 EEE 5 fff 22 FFF 0 ggg 45 GGG
>>>df.index=np.arange(len(df)) >>> df xxx yyy zzz 0 aaa 20 AAA 1 bbb 34 BBB 2 ccc 50 CCC 3 ddd 12 DDD 4 eee 62 EEE 5 fff 22 FFF 6 ggg 45 GGG
>>>df['@@@']=['@1','@2','@3','@4','@5','@6','@7'] >>>df xxx yyy zzz @@@ 0 aaa 20 AAA @1 1 bbb 34 BBB @2 2 ccc 50 CCC @3 3 ddd 12 DDD @4 4 eee 62 EEE @5 5 fff 22 FFF @6 6 ggg 45 GGG @7
>>>col=pd.DataFrame({'@@@':['@1','@2','@3','@4','@5','@6','@7']}) >>>df=pd.concat([df,col],axis=1) >>>df xxx yyy zzz @@@ 0 aaa 20 AAA @1 1 bbb 34 BBB @2 2 ccc 50 CCC @3 3 ddd 12 DDD @4 4 eee 62 EEE @5 5 fff 22 FFF @6 6 ggg 45 GGG @7
>>>df=df.drop(2,axis=0) >>> df xxx yyy zzz @@@ 0 aaa 20 AAA @1 1 bbb 34 BBB @2 3 ddd 12 DDD @4 4 eee 62 EEE @5 5 fff 22 FFF @6 6 ggg 45 GGG @7
>>>df=df.drop('yyy',axis=1) >>>df xxx zzz @@@ 0 aaa AAA @1 1 bbb BBB @2 3 ddd DDD @4 4 eee EEE @5 5 fff FFF @6 6 ggg GGG @7
>>>df.columns=['XXX','YYY','ZZZ'] >>>df XXX YYY ZZZ 0 aaa AAA @1 1 bbb BBB @2 3 ddd DDD @4 4 eee EEE @5 5 fff FFF @6 6 ggg GGG @7
NP初期化
>>>np_arr=np.array([[1,2,3],[4,5,6]])
要列名付与
>>>df=pd.DataFrame(np_arr,columns=['a','b','c'])
>>>np_arr=np.array(df)
>>>np_arr=df.value
>>>df.describe()
>>>df.corr()
※ 可視化する方法はコチラ。