>>> import pandas as pd
種類 | 次元 | 構造 |
Series | 一次配列 | 一次データ配列と、その各要素に対応するIndex(ラベル)を持つデータ構造になります。 Indexも一次配列で、要素数はデータの要素数と一致しなければなりません。 |
DataFrame | 二次配列 | 二次データ配列(行/列)と、行に対応するIndex(行ラベル)、列に対応するColumns(列ラベル)を持つデータ構造になります。 Index、Columnsはともに一次配列で、要素数はIndex=行数、Columns=列数でなければなりません。 具体的には二次元のテーブル構造となります。 |
ラベル | a | b | c | d | e |
データ | 1 | 2 | 3 | 4 | 5 |
ラベル | 列(columns) | ||
x | y | z | |
a | 1 | 10 | 55 |
b | 2 | 20 | 44 |
c | 3 | 30 | 33 |
d | 4 | 40 | 22 |
e | 5 | 50 | 11 |
data | 配列の中身を指定します。 list、Numpy配列(ndarray)で指定できます。 indexを指定すればDataは未指定でもかまいません。 この場合データの全要素に'NaN'が入ります。 |
index | 配列のラベルを指定します。 未指定の場合、0からの連番が定義されます。 |
#index未指定時 *********************************** #リストで指定 >>> pd.Series([1,2,3,4,5]) 0 1 1 2 2 3 3 4 4 5 #Numpy配列で指定 >>> a = np.array([6,7,8,9,10]) >>> pd.Series(a) 0 6 1 7 2 8 3 9 4 10 #index指定時 ************************************* >>> pd.Series([1,2,3,4,5],index = ['a','b','c','d','e']) a 1 b 2 c 3 d 4 e 5 #数値を直接指定 >>> pd.Series(1,['a','b','c']) a 1 b 1 c 1
>>> a = {'a':1,'b':2,'c':3} >>> pd.Series(a) a 1 b 2 c 3
data | 配列の中身を指定します。 list、Numpy配列(ndarray)で指定できます。 index,columnsを指定すればDataは未指定でもかまいません。 この場合データの全要素に'NaN'が入ります。 |
index | 行方向のラベルを指定します。 未指定の場合、0からの連番がindexラベルに定義されます。 |
columns | 列方向のラベルを指定します。 未指定の場合、0からの連番がcolumnsラベルに定義されます。 |
#データをlistで指定する場合 ********************** >>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]]) 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 #データをNumpy配列で指定する場合 ***************** >>> a = np.array([[1,2,3],[4,5,6],[7,8,9]]) >>> pd.DataFrame(a) 0 1 2 0 1 2 3 1 4 5 6 2 7 8 9 #indexを指定する場合 ***************************** >>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c']) 0 1 2 a 1 2 3 b 4 5 6 c 7 8 9 #columnsを指定する場合 *************************** >>> pd.DataFrame([[1,2,3],[4,5,6],[7,8,9]],index=['a','b','c'],columns=['x','y','z']) x y z a 1 2 3 b 4 5 6 c 7 8 9 #Dataを未指定とする場合 ************************** # 配列サイズをあらかじめ決めておきたい場合等に使えます。 >>> pd.DataFrame(index=['a','b','c'],columns=['x','y','z']) x y z a NaN NaN NaN b NaN NaN NaN c NaN NaN NaN
>>> dic={'a':[1,2,3],'b':[4,5,6],'c':[7,8,9]} >>> pd.DataFrame(dic) a b c 0 1 4 7 1 2 5 8 2 3 6 9 #index指定した場合 >>> pd.DataFrame(dic,index=['x','y','z']) a b c x 1 4 7 y 2 5 8 z 3 6 9
#float型 >>> pd.Series([0.1,0.2,0.3],['a','b','c']) a 0.1 b 0.2 c 0.3 dtype: float64 #int型 >>> pd.Series([1,2,3],['a','b','c']) a 1 b 2 c 3 dtype: int64 #複素数型 >>> pd.Series([1.+3.j,2.+2.j,3.+1.j],['a','b','c']) a (1+3j) b (2+2j) c (3+1j) dtype: complex128 #文字列型 >>> pd.Series(['abc','bcd','cde'],['a','b','c']) a abc b bcd c cde dtype: object >>> pd.Series([[1,2],[3,4],[3,4]],['a','b','c']) a [1, 2] b [3, 4] c [3, 4] dtype: object