Python でリストを Pandas DataFrame に変換する
- Python でリストを Pandas DataFrame に変換する
- Python の Pandas DataFrame の列にリストを保存する
- Python でリストをインデックス付きのデータフレームに変換する
-
Python で
zip()
を使用して、2つのリストを 1つのデータフレームに圧縮する - Python で多次元リストを Pandas DataFrame に変換する
この記事では、リスト内のアイテムを Pandas DataFrame に変換する方法を紹介します。
Python でリストを Pandas DataFrame に変換する
一般に、データフレームは、2 次元のラベル付きデータ構造です。Pandas は、データサイエンスに非常に役立つオープンソースの Python パッケージです。
ここでは、最初に pandas パッケージをインポートします。この特定のプログラムでは、Pandas パッケージを pd
として定義します。次に、リスト値 Tom
、Mark
、および 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_list
を columns = ['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
を作成し、i
、ii
、および iii
を入力します。このリストは、pd.DataFrame()
の 2 番目のパラメーターとして使用できます。1 番目と 3 番目のパラメーターは my_list
と columns =['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()
関数は、リスト a
と b
をグループ化された同様のインデックス付きアイテムと組み合わせるのに役立ったことがわかります。リスト a
と b
の zip 状態を c
に保存してから list1
を作成し、zip リスト c
を保存しました。次の例では、zip()
を使用して Pandas の DataFrame を作成します。
name_list
と height_list
の 2つの異なるリストを作成し、それぞれいくつかの名前と高さを保存します。次に、name_list
と height_list
を zip(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_list
と height_list
の両方の値で適切な順序で構成されていることがわかります。
この手法を使用して、3つ以上のリストを圧縮することもできます。
Python で多次元リストを Pandas DataFrame に変換する
多次元リストを Pandas の DataFrame に変換することもできます。多次元リストのリストアイテムの列名を設定できます。この方法を 2 次元リストで示します。
多次元リストを Pandas DataFrame に変換するには、最初に複数のリストを含むリストを作成する必要があります。したがって、最初に Pandas をインポートしてから、リスト info
を作成します。このリストには、3 人の異なる個人の名前と年齢を 3つの別々のリストに保存します。次に、pd.DataFrame()
を呼び出してリストを処理し、データに Name
と Age
の 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 でより多くの列を取得できます。