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

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

numpy、pandas を使っていると、型変換のときに、いつも詰まってしまいます。
そこで、この記事でまとめて、覚えてしまいたいと思います。
dict型との変換も気になりますが、こんがらがるので、dict型はまた別でまとめます。

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

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

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

相互変換

list型とndarray型

tolist() なのか、to_list() なのか、いつも忘れてしまいます。正解は tolist() でした。

Python

    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() です。

Python

    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つあります。

Python

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