pandasのSeriesのインデックスでの要素参照と代入

pandasのSeriesは、NumPyのndarrayやPythonの通常のリストと同様に [] でインデックスを指定して要素を参照・代入することができる。インデックスは0から始まる。

インデックスを負にすると後ろから数えてくれるという機能はなく、この点はNumPyや通常のリストと異なる。

import pandas as pd

nan = float("nan")

sr1 = pd.Series([0.5, 0.8, nan])
print(sr1[1])
# 出力結果
# 0.8

# NumPyと違って、 インデックスを負にして後ろから数えてくれる機能はない
# print(sr1[-1])

# 代入の例
sr1[1] = 1.8
print(sr1)
# 出力結果
# 0    0.5
# 1    1.8
# 2    NaN
# dtype: float64

インデックスが文字列のSeriesの場合は、その文字列で要素を指定できる。

sr2 = pd.Series([0.5, 0.8, nan], index=['foo', 'bar', 'baz'])
print(sr2['baz'])
# 出力結果
# nan

# 代入の例
sr2['bar'] = 1.8
print(sr2)
# 出力結果
# foo    0.5
# bar    1.8
# baz    NaN
# dtype: float64

Seriesは要素の順序も保存しているので、たとえ文字列をインデックスにしたSeriesであっても、整数でアクセスすることもできる。

print(sr2[1])
# 出力結果
# nan

# 代入の例
sr2[2] = 9999
print(sr2)
# 出力結果
# foo       0.5
# bar       1.8
# baz    9999.0
# dtype: float64

関連

このサイトは筆者(hydrocul)の個人メモの集合です。すべてのページは永遠に未完成です。