list・numpy.ndarray・pandas.Seriesの1次元相互変換まとめ

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'>