1次元のlist、numpy.ndarray、pandas.Seriesの型変換をまとめます。
dict型との変換も気になりますが、こんがらがるのでdict型はまた別でまとめます。
ndarrayの公式ドキュメントはこちらです。
ndarrayの正式名称はThe N-dimensional arrayです。
https://numpy.org/doc/stable/reference/arrays.ndarray.html
pandas.Seriesの公式ドキュメントはこちらです。
https://pandas.pydata.org/docs/reference/api/pandas.Series.html
1次元の型変換の相互変換表
相互変換を図にしてみました。
list型とnumpy.ndarray型の変換
ndarrayからlistに変換するのは、tolist()とto_list()でいつも考えてしまいます。
正解はtolist()です。
li = [1, 2, 3, 4] print(li) print(type(li)) # [1, 2, 3, 4] # <class 'list'> # list型からndarray型に変換 nda = np.array(li) print(nda) print(type(nda)) # [1 2 3 4] # <class 'numpy.ndarray'> # ndarray型からlist型に変換 li = nda.tolist() print(li) print(type(li)) # [1, 2, 3, 4] # <class 'list'>
list型とpandas.Series型の変換
pandas.Seriesからlistへの変換はtolist()ではなく、to_list()です。
li = [1, 2, 3, 4] print(li) print(type(li)) # [1, 2, 3, 4] # <class 'list'> # list型からpd.Series型に変換 pds = pd.Series(li) print(pds) print(type(pds)) print(pds.index) # 0 1 # 1 2 # 2 3 # 3 4 # dtype: int64 # <class 'pandas.core.series.Series'> # RangeIndex(start=0, stop=4, step=1) # pd.Series型からlist型に変換 li = pds.to_list() print(li) print(type(li)) # [1, 2, 3, 4] # <class 'list'>
numpy.ndarray型とpandas.Series型の変換
pandas.Series型をnumpy.ndarray型にする方法は2つあります。
# ndarray型をps.Series型に変換 nda = np.array([1, 2, 3, 4]) pds = pd.Series(nda) print(pds) print(type(pds)) # 0 1 # 1 2 # 2 3 # 3 4 # dtype: int64 # <class 'pandas.core.series.Series'> # ps.Series型をndarray型に変換 nda = pds.to_numpy() print(nda) print(type(nda)) # [1 2 3 4] # <class 'numpy.ndarray'> # ps.Series型をndarray型に変換 nda = pds.values print(nda) print(type(nda)) # [1 2 3 4] # <class 'numpy.ndarray'>