こんにちは、ギークです。
この記事では、PythonでリストからDataFrameを作成するさまざまな方法について説明します。
こちらもご覧ください。
PythonのリストとDataFrameって何?
Pythonにおいて、リストはPythonの標準的なデータ構造の1つで、他のPythonオブジェクトの配列として広く利用されています。
DataFrameはPythonモジュール pandas が提供するサードパーティ製のPythonオブジェクトで、表形式でデータを格納します。
PandasのDataFrameは、リスト、辞書、NumPyの配列など、様々なPythonオブジェクトから作成することができます。
しかし、ここでは、Pythonのリストからpandas DataFrameオブジェクトを作成することだけに限定して説明します。
それでは、pandas Python モジュールをインストールして、議論を始めましょう。
C:UsersGuest> pip install pandas |
Pythonでは、リストからpandasのDataFrameを作成する方法が複数あります。
しかし、ここでは一般的に使用されるいくつかの方法について説明します。
1. 1次元のリストからDataFrameを作成する
これは、pandas の DataFrame オブジェクト Python リストを作成する最も簡単なテクニックの1つです。
このメソッドでは、少数の要素を含む1次元のリストを作成し、それを DataFrame() 関数に渡します。
これは、渡された1次元リストのデータ要素から作られた pandas DataFrame オブジェクトを返します。
それでは、1次元のリストから pandas DataFrame を生成する Python コードを書いてみましょう。
# Import pandas moduleimport pandas as pd
# Create a Python 1-D listlst = ['Android', 'Bootstrap', 'Csharp', 'Django']
# Create a DataFrame using 1-D listdf = pd.DataFrame(lst)
print(df)
|
結果は以下の通りです。
# Import pandas moduleimport pandas as pd
# Create a Python 2-D listlst = [['Anurag', 'Kumar', 25],
['Binod', 'Rathi', 36],
['Ravi', 'Yadav', 27],
['Divya', 'Singh', 28],
['Sanjay', 'Kumar', 21]]
# Create a DataFrame using 2-D listdf = pd.DataFrame(lst, columns = ['first_name', 'last_name', 'age'])
print(df)
|
この記事もチェック:Pythonのsample関数を使ってリストからランダムに要素を抽出する方法
2. 2次元リスト(リストのリスト)からDataFrameを作成する
このメソッドでは、いくつかの要素を含む Python の 2 次元リストを作成し、それを DataFrame() 関数に渡します。
さらに、この DataFrame() 関数は、渡された2次元リストのデータ要素から作られた pandas DataFrame オブジェクトを返します。
それでは、2次元リストから pandas DataFrame を生成する Python コードを見てみましょう。
# Import pandas moduleimport pandas as pd
# Create a Python list of tupleslist_tp = [('A1', 'A2', 'A3', 'A4', 'A5'),
('B1', 'B2', 'B3', 'B4', 'B5'),
('C1', 'C2', 'C3', 'C4', 'C5'),
('D1', 'D2', 'D3', 'D4', 'D5')]
# Create a DataFrame using list of tuplesdf = pd.DataFrame(list_tp)
print(df)
|
結果は以下の通りです。
# Import pandas moduleimport pandas as pd
# Create a Python list of tupleslist_tp = [('Sanjay Kumar', 'ECE', 8.15),
('Uttam Kumar', 'IPE', 7.83),
('Ravi Kumar', 'CSE', 9.12),
('Anurag Singh', 'ICE', 8.88)]
# Create a DataFrame using list of tuples# and from_records() functiondf = pd.DataFrame.from_records(list_tp, columns = ['Roll', 'Program', 'CGPA'])
print(df)
|
3. タプルのリストからDataFrameを作成する
Pythonのタプルのリストを使ってpandasのDataFrameオブジェクトを作ることもできます。
ここでも、タプルのリストからpandas DataFrameを作成する3つの方法があります。
一つずつ説明しましょう。
方法1:DataFrame()関数にタプルのリストを渡す
この方法では、Pythonのタプルの形でデータを含むPythonのリストを作成します。
そして、それを DataFrame() 関数に渡します。
そして DataFrame() 関数は、タプルのリストのデータ要素から作られた Pandas DataFrame オブジェクトを返します。
これを Python コードで実装してみましょう。
# Import pandas moduleimport pandas as pd
# Create two Python listsprog_lang = ['C++', 'Python', 'Matlab', 'Csharp']
file_extn = ['.cpp', '.py', '.mat', '.cs']
# Create a Python list of tuples# using above lists and zip() functionlist_tp = list(zip(prog_lang, file_extn))
# Create a DataFrame from lists using dictionarydf = pd.DataFrame(list_tp, columns = ['Language', 'Extension'])
print(df)
|
結果は以下の通りです。

方法2:from_records()関数の使用
この方法では、上記のPythonのコードで作成したのと同じように、Pythonのタプルの形でデータを含むリストを作成します。
そして、それを from_records() 関数に渡すと、タプルのリストのデータ要素から作られた Pandas DataFrame オブジェクトが返されます。
これを実装するための Python コードを書いてみましょう。

結果は以下の通りです。

方法3: list() と zip() 関数を使用する
この方法では、list() と zip() 関数を用いて、データを Python のタプルの形で格納した Python リストを作成します。
zip()` 関数は、渡された両方のリストのデータ要素を圧縮して Python タプルのオブジェクトを作成します。
そして list() 関数は、Python の zip() 関数が返すイテレータオブジェクトから Python のタプルのリストを作成します。
そして、このタプルのリストを DataFrame() 関数に渡すだけで、タプルのリストのデータ要素から作られた Pandas DataFrame オブジェクトが返されます。
これを実装するための Python コードを見てみましょう。

結果は以下の通りです。

この記事もチェック:Pythonのzip関数を使ってリストを辞書(dict)やリストを処理する方法
まとめ
この記事では、以下のことを学びました。
- Python の DataFrame オブジェクトとリストとは?
- 1次元からDataFrameを作成する方法
- リストや2次元のリストからDataFrameを作成する方法
- タプルのリストからDataFrameを作成するためのさまざまな方法