Python-データ操作

Pythonは、主に2つのライブラリ、PandasとNumpyを介してさまざまな形式のデータを処理します。前の章で、これら2つのライブラリの重要な機能をすでに見てきました。この章では、データの操作方法に関する各ライブラリの基本的な例をいくつか紹介します。

Numpyでのデータ操作

NumPyで定義されている最も重要なオブジェクトは、ndarrayと呼ばれるN次元配列型です。同じタイプのアイテムのコレクションについて説明します。コレクション内のアイテムには、ゼロベースのインデックスを使用してアクセスできます。ndarrayクラスのインスタンスは、チュートリアルで後述するさまざまな配列作成ルーチンによって構築できます。基本的なndarrayは、NumPyの配列関数を使用して次のように作成されます-

numpy.array

以下は、Numpyデータ処理の例です。

例1

# more than one dimensions 
import numpy as np 
a = np.array([[1, 2], [3, 4]]) 
print a

出力は次のとおりです-

[[1, 2] 
 [3, 4]]

例2

# minimum dimensions 
import numpy as np 
a = np.array([1, 2, 3,4,5], ndmin = 2) 
print a

出力は次のとおりです-

[[1, 2, 3, 4, 5]]

例3

# dtype parameter 
import numpy as np 
a = np.array([1, 2, 3], dtype = complex) 
print a

出力は次のとおりです-

[ 1.+0.j,  2.+0.j,  3.+0.j]

パンダでのデータ操作

パンダはデータを処理します SeriesData Frame、および Panel。これらのそれぞれからいくつかの例を見ていきます。

パンダシリーズ

Seriesは、任意のタイプ(整数、文字列、浮動小数点数、Pythonオブジェクトなど)のデータを保持できる1次元のラベル付き配列です。軸ラベルはまとめてインデックスと呼ばれます。パンダシリーズは、次のコンストラクターを使用して作成できます-

pandas.Series( data, index, dtype, copy)

ここでは、NumpyArrayからシリーズを作成します。

#import the pandas library and aliasing as pd
import pandas as pd
import numpy as np
data = np.array(['a','b','c','d'])
s = pd.Series(data)
print s

その output 次のとおりです-

0   a
1   b
2   c
3   d
dtype: object

パンダDataFrame

データフレームは2次元のデータ構造です。つまり、データは行と列に表形式で配置されます。pandas DataFrameは、次のコンストラクターを使用して作成できます-

pandas.DataFrame( data, index, columns, dtype, copy)

次に、配列を使用してインデックス付きのDataFrameを作成しましょう。

import pandas as pd
data = {'Name':['Tom', 'Jack', 'Steve', 'Ricky'],'Age':[28,34,29,42]}
df = pd.DataFrame(data, index=['rank1','rank2','rank3','rank4'])
print df

その output 次のとおりです-

Age    Name
rank1    28      Tom
rank2    34     Jack
rank3    29    Steve
rank4    42    Ricky

パンダパネル

A panelデータの3Dコンテナです。用語Panel data 計量経済学から派生し、パンダの名前に部分的に責任があります- pan(el)-da(ta)-s。

パネルは、次のコンストラクターを使用して作成できます-

pandas.Panel(data, items, major_axis, minor_axis, dtype, copy)

以下の例では、DataFrameオブジェクトのdictからパネルを作成します

#creating an empty panel
import pandas as pd
import numpy as np

data = {'Item1' : pd.DataFrame(np.random.randn(4, 3)), 
        'Item2' : pd.DataFrame(np.random.randn(4, 2))}
p = pd.Panel(data)
print p

その output 次のとおりです-

<class 'pandas.core.panel.Panel'>
Dimensions: 2 (items) x 4 (major_axis) x 5 (minor_axis)
Items axis: 0 to 1
Major_axis axis: 0 to 3
Minor_axis axis: 0 to 4