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

list、numpy、pandasの型変換をまとめます。

dict型との変換も気になりますが、こんがらがるので、dict型はまた別でまとめます。

ndarray の公式ドキュメントを載せておきたいと思います。
ndarray の正式名称って The N-dimensional array なんですね。

pandas.Series の公式ドキュメントも載せておきます。

1次元の型変換を網羅しておく

相互変換を図にしてみました。

相互変換

list型とndarray型

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

ndarray型とpandas.Series型

pandas.Series型を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'>