The sky is the limit

Vue.js、PHP、Java、Cordova、Monacaを中心にハイブリッドアプリ開発、PWA開発など効率的なWEB、iOS、Androidアプリ開発の情報を共有します。

【Pandas】PandasのSeries型の使い方 その2 - Seriesの参照 -

【Pandas】PandasのSeries型の使い方 その2 - Seriesの参照 -

f:id:duo-taro100:20160218004611p:plain

前回
www.sky-limit-future.com


Seriesの参照にはindexとvalueどちらか一方のみを参照する方法と、両方を参照する方法があります。
また、Seriesの一部だけを参照することも可能です。
この方法も2つあって、一つは範囲を指定するもの。もう一つはインデックスで指定するもの。

indexとvalue(データ)どちらか一方のみを参照する方法

indexのみを参照する方法

indexを参照するには series.indexとします。

import pandas as pd

labels = ["a型", "b型", "o型", "ab型"]
number = [10, 5, 8, 3]

# 生成
series = pd.Series(data=number, index=labels)
print(series.index)

結果

Index(['a型', 'b型', 'o型', 'ab型'], dtype='object')

Indexの配列と、タイプが表示されました。

value(データ)のみを参照する方法

valueを参照するには series.valuesとします

import pandas as pd

labels = ["a型", "b型", "o型", "ab型"]
number = [10, 5, 8, 3]

# 生成
series = pd.Series(data=number, index=labels)
print(series.values)

結果

[10 5 8 3]

データが表示され、こちらはタイプは表示されませんでした。

index、valusの部分抽出

それぞれ一部分を抽出して参照することも可能です。以下のようにします。

// index参照
series.index[抽出開始位置:抽出終了位置 + 1]

//values参照
series.values[抽出開始位置:抽出終了位置 + 1]

位置は0から開始する点に注意です。

import pandas as pd

labels = ["a型", "b型", "o型", "ab型"]
number = [10, 5, 8, 3]

# 生成
series = pd.Series(data=number, index=labels)

series_labels = series.index
series_number = series.values
# series_labels[0]
print(series_labels[0])
# series_labels[0:3]
print(series_labels[0:3])

# series_number[0]
print(series_number[0])
# series_number[1:4]
print(series_number[1:4])

結果

# series_labels[0]
a型

# series_labels[0:3]
Index(['a型', 'b型', 'o型'], dtype='object')

# series_number[0]
10

# series_number[1:4]
[5 8 3]

indexとvalueの両方を参照する方法

範囲を指定して参照する。

範囲を指定する場合は以下のようにします。

series[抽出開始位置:抽出終了位置 + 1]

こちらも位置は0から開始する点に注意です。

import pandas as pd

labels = ["a型", "b型", "o型", "ab型"]
number = [10, 5, 8, 3]

series = pd.Series(data=number, index=labels)

# 0:4指定
print(series[0:4])

# 0:3指定
print(series[0:3])

# 1:3指定
print(series[1:3])

# 1:2指定
print(series[1:2])

# 1:4指定
print(series[1:4])

# :3指定
print(series[:3])

結果

# 0:4指定
# 全てが表示されている
a型 10
b型 5
o型 8
ab型 3
dtype: int64

# 0:3指定
# 最後のab型を除いて表示されている
a型 10
b型 5
o型 8
dtype: int64

# 1:3指定
b型 5
o型 8
dtype: int64

# 1:2指定
b型 5
dtype: int64

# 1:4指定
b型 5
8
ab型 3
dtype: int64

# :3指定
# 1:3と指定した場合と同じ結果
a型 10
b型 5
o型 8
dtype: int64

インデックスを指定して参照する。

インデックス(今回の例でいうと「a型」「b型」「o型」「ab型」)を指定すると、それに対応するvalue(データ)を取得できます。
複数指定も可能です。

import pandas as pd

labels = ["a型", "b型", "o型", "ab型"]
number = [10, 5, 8, 3]

series = pd.Series(data=number, index=labels)

# 全て指定
print(series[["a型","b型","o型","ab型"]])

# a型のみ指定
print(series[["a型"]])

# a型以外を指定
print(series[["b型","o型","ab型"]])

# a型とo型を指定
print(series[["a型","o型"]])

結果

# 全て指定
a型 10
b型 5
o型 8
ab型 3
dtype: int64

# a型のみ指定
a型 10
dtype: int64

# a型以外を指定
b型 5
o型 8
ab型 3
dtype: int64

# a型とo型を指定
a型 10
o型 8
dtype: int64

Series型の参照方法をまとめました。
気になることがあれば追記します。