PROGRAMMING Python

シリーズ(Series) pandas入門

更新日:

pandasのデータ構造であるシリーズ(Sereis)について、説明します。

実行環境
Windows 10
Miniconda3 4.5.12(64bit)
開発環境
IPython 7.2.0
Jupyter Notebook

必要なライブラリ
pandas
ライブラリのインストール方法
Anacondaプロンプトを立ち上げて、下記コマンドでインストールして下さい。

conda install pandas

以上で準備が整いました。

シリーズ(Series)とは

シリーズは1次元の配列のようなオブジェクトです。
シリーズには連続した値とそれに関連付けられたインデックスというデータラベルの配列が含まれます。

In[1]: import pandas as pd
In[2]: from pandas import Series

In[3]: obj = pd.Series([1, 2, 3, 4])

In[4]: obj

結果
シリーズの文字列表現は、左側がインデックス、右側がデータ値と表示されます。
データに対するインデックスを指定しなかっため、0からデータ数-1(今回4個なので、3)のデフォルトインデックスで作られます。

out[4]:
0 1
1 2
2 3
3 4
dtype: int64

シリーズ(Series)が持つ属性

シリーズ(Series)の属性

Values シリーズのデータ配列
index シリーズのインデックス(軸ラベル)
name シリーズのオブジェクト名
index.name シリーズのオブジェクトのインデックス名

Valuesとindex属性の取得方法は以下です。

In[6]: obj.values

Out[6]: array([1, 2, 3, 4])

In[7]: obj.index

Out[7]: RangeIndex(start=0, stop=4, step=1)

nameとindex.name属性を設定して、取得する方法は以下です。

In[8]: obj.name = 'number'

In[9]: obj.index.name = 'state'

In[10]: obj
Out[10]:
state
0  1
1  2
2  3
3  4
Name: number dtype: float64

シリーズ(Series)でできること

特定のindexを付与した1次元配列データの作成

In [11]: obj2 = pd.Series([3, 2, 1, 4], index=['n', 'o', 's', 'y'])

In [12]: obj2
Out[12]:
n  3
o  2
s  1
y  4
dtype: int64

indexのラベルを使って、データを引き出す。
(NumPyの配列ではできない機能)

In [13]: obj2['o']
Out[13]: 2

In [14]: obj2[['s', 'o', 'n']]
Out[14]:
s  1
o  2
n  3
dtype: int64

フィルタリング(条件指定して特定のデータのみを引き出す)、スカラー値の乗算、NumPyの関数操作。
上記を行っても、indexとdataとの関連は保持されます。

In [15]: obj2[obj2 >= 3]
Out[15]: 
n  3
y  4
dtype: int64

In [16]: obj2 * 3
Out[16]:
n   9
o   6
s   3
y  12
dtype: int64

In [17]: import numpy as np
In [18]: np.exp(obj2)
Out[18]:
n      8103.083928
o       403.428793
s        20.085537
y    162754.791419
dtype: float64

ディクショナリ形式のデータをシリーズで1次元配列を作成する

In [19]: jpdata = {'tokyo':13843403, 'osaka':8824566, 'fukuoka':5111494, 'kagawa':961900} 

In [20]: obj3 = pd.Series(jpdate)

In [21]: obj3
Out[21]: 
tokyo      13843403
osaka       8824566
fukuoka     5111494
kagawa       961900
dtype: int64

シリーズ(Series)の参考情報

pandas Seriesリファレンス
pandas.Series_GitHubソースコード

レクタングル(大)

レクタングル(大)

-PROGRAMMING, Python

Copyright© nimorlog , 2019 All Rights Reserved Powered by STINGER.