Python でリストを Pandas DataFrame に変換する

Ankur Baral 2023年1月30日
  1. Python でリストを Pandas DataFrame に変換する
  2. Python の Pandas DataFrame の列にリストを保存する
  3. Python でリストをインデックス付きのデータフレームに変換する
  4. Python で zip() を使用して、2つのリストを 1つのデータフレームに圧縮する
  5. Python で多次元リストを Pandas DataFrame に変換する
Python でリストを Pandas DataFrame に変換する

この記事では、リスト内のアイテムを Pandas DataFrame に変換する方法を紹介します。

Python でリストを Pandas DataFrame に変換する

一般に、データフレームは、2 次元のラベル付きデータ構造です。Pandas は、データサイエンスに非常に役立つオープンソースの Python パッケージです。

ここでは、最初に pandas パッケージをインポートします。この特定のプログラムでは、Pandas パッケージを pd として定義します。次に、リスト値 TomMark、および Tony を格納するリスト my_list を作成します。これらはランダムな名前にすぎません。次に、pd.DataFrame(my_list) を変数 df に割り当てます。DataFrame(my_list) メソッドは my_list の値を取り、それを使用してデータフレームを作成します。プログラムの最後の行で、変数 df に格納した出力データフレームを呼び出しました。データフレームを表示するために、print(df) の代わりに df を書き込むこともできます。

サンプルコード:

# python 3.x
import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list)
print(df)

出力:

    0
0   Tom
1   Mark
2   Tony

リストで提供したアイテムが上記の出力の列にあることがわかります。

Python の Pandas DataFrame の列にリストを保存する

DataFrame に列を作成し、変換されたデータを列に格納することで、リストを Pandas DataFrame に変換できます。

リストを Pandas の DataFrame 列のデータに変換するために、リスト my_list を作成し、リストの値としていくつかのランダムな名前を付けます。私たちの目標は、リスト要素が名前というタイトルの列のエントリになるようにすることです。そのために、以下のように、変数 my_listcolumns = ['Names']pd.DataFrame() に渡します。次に、df 変数を出力し、コードを実行して出力を確認します。

サンプルコード:

# python 3.x
import pandas as pd

my_list = ["Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list, columns=["Names"])
print(df)

出力:

    Names
0   Tom
1   Mark
2   Tony

追加の属性 columns = ['Names'] を追加すると、my_list の名前が DataFrame の列 Names の値になっていることがわかります。

Python でリストをインデックス付きのデータフレームに変換する

リストアイテムを DataFrame に変換しながら、インデックスを作成することもできます。

リスト my_list を作成します。私たちの目標は、リスト要素が、事前定義された行ごとのインデックスを持つ名前というタイトルの列エントリになるようにすることです。そのために、リスト index を作成し、iii、および iii を入力します。このリストは、pd.DataFrame() の 2 番目のパラメーターとして使用できます。1 番目と 3 番目のパラメーターは my_listcolumns =['Names'] です。次に、作成した式が格納されている変数 df を出力します。

サンプルコード:

# python 3.x
import pandas as pd

my_list = [" Tom", "Mark", "Tony"]
df = pd.DataFrame(my_list, index=["i.", "ii.", "iii."], columns=["Names"])
print(df)

出力:

     Names
i.    Tom
ii.   Mark
iii.  Tony

リスト index 内の値がデフォルトの Pandas インデックスに取って代わったことがわかります。インデックス内に任意の値を入れて、それに応じて結果を生成できます。

Python で zip() を使用して、2つのリストを 1つのデータフレームに圧縮する

zip() 関数は、同じインデックスを持つリストの値をグループ化することにより、2つの異なるリストの値を 1つに結合します。DataFrame を作成する前に、まず zip() がどのように機能するかを見てみましょう。

サンプルコード:

# python 3.x
a = ["1", "2", "3"]
b = ["4", "5", "6"]
c = zip(a, b)
list1 = list(c)
print(list1)

出力:

[('1', '4'), ('2', '5'), ('3', '6')]

zip() 関数は、リスト ab をグループ化された同様のインデックス付きアイテムと組み合わせるのに役立ったことがわかります。リスト ab の zip 状態を c に保存してから list1 を作成し、zip リスト c を保存しました。次の例では、zip() を使用して Pandas の DataFrame を作成します。

name_listheight_list の 2つの異なるリストを作成し、それぞれいくつかの名前と高さを保存します。次に、name_listheight_listzip(name_list, height_list) で圧縮して、Pandas の DataFrame を作成します。

別の属性 index = [ 'index1', 'index2', 'index3' ] を配置するだけでデータにインデックスを付けることもできることに注意してください。ここで、インデックスリスト内の項目は何でもかまいません。

サンプルコード:

# python 3.x
import pandas as pd

name_list = ["Tom", "Mark", "Tony"]
height_list = ["150", "151", "152"]
df = pd.DataFrame((zip(name_list, height_list)), columns=["Name", "Height"])
print(df)

出力:

    Name    Height
0   Tom     150
1   Mark    151
2   Tony    152

形成された DataFrame は、name_listheight_list の両方の値で適切な順序で構成されていることがわかります。

この手法を使用して、3つ以上のリストを圧縮することもできます。

Python で多次元リストを Pandas DataFrame に変換する

多次元リストを Pandas の DataFrame に変換することもできます。多次元リストのリストアイテムの列名を設定できます。この方法を 2 次元リストで示します。

多次元リストを Pandas DataFrame に変換するには、最初に複数のリストを含むリストを作成する必要があります。したがって、最初に Pandas をインポートしてから、リスト info を作成します。このリストには、3 人の異なる個人の名前と年齢を 3つの別々のリストに保存します。次に、pd.DataFrame() を呼び出してリストを処理し、データに NameAge の 2つの列タイトルを指定します。

サンプルコード:

# python 3.x
import pandas as pd

info = [["Tom", 18], ["Mark", 25], ["Tony", 68]]
df = pd.DataFrame(info, columns=["Name", "Age"])
print(df)

出力:

    Name    Age
0   Tom     18
1   Mark    25
2   Tony    68

それぞれの順序で名前と年齢が出力された 2つの列があります。info 内の個々のリストに他の値を追加し、それらに列タイトルを付けて、DataFrame でより多くの列を取得できます。

関連記事 - Python List