pandasのSeriesの概要と生成方法 2015/06/29
pandasにはSeries
とDataFrame
という2つのデータ構造があり、そのうちSeries
は1次元配列に似ている。
インデックスは0
から始まる整数だけでなく、任意の文字列にもできるので
Pythonのディクショナリ
(他の言語でいうと連想配列とかハッシュマップとか)にも似ているが、
Series
はPythoのリストと同様に順序を保存する点がディクショナリとは異なる。
pandasのSeriesは pd.Series
を使ってPythonのリストから簡単に生成できる。
import pandas as pd
sr = pd.Series([10, 20, 40])
print(sr)
# 出力結果
# 0 10
# 1 20
# 2 40
# dtype: int64
nan = float("nan")
sr = pd.Series([0.5, 0.8, nan])
print(sr)
# 出力結果
# 0 0.5
# 1 0.8
# 2 NaN
# dtype: float64
Seriesをprint
で出力させると、PythonのリストやNumPyのndarrayとはだいぶ違うフォーマットで表示される。
インデックスが0
から始まる整数以外にすることもできる。
sr = pd.Series([0.5, 0.8, nan], index=['foo', 'bar', 'baz'])
print(sr)
# 出力結果
# foo 0.5
# bar 0.8
# baz NaN
# dtype: float64
Pythonのディクショナリから生成することもできる。ただ、ディクショナリは順序を保存していないので、生成されるSeriesの要素の順序は不定である。
sr = pd.Series({'foo': 0.5, 'bar': 0.8, 'baz': nan})
print(sr)
# 出力結果
# bar 0.8
# baz NaN
# foo 0.5
# dtype: float64