pandasのSeriesのインデックスでの要素参照と代入 2015/09/06
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
関連