PythonでリストをDataframeに変換する方法を解説する

スポンサーリンク

こんにちは、ギークです。

この記事では、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 module
import pandas as pd
 
# Create a Python 1-D list
lst = ['Android', 'Bootstrap', 'Csharp', 'Django']
 
# Create a DataFrame using 1-D list
df = pd.DataFrame(lst)
print(df)

結果は以下の通りです。

# Import pandas module
import pandas as pd
 
# Create a Python 2-D list
lst = [['Anurag', 'Kumar', 25],
       ['Binod', 'Rathi', 36],
       ['Ravi', 'Yadav', 27],
       ['Divya', 'Singh', 28],
       ['Sanjay', 'Kumar', 21]]
 
# Create a DataFrame using 2-D list
df = pd.DataFrame(lst, columns = ['first_name', 'last_name', 'age'])
print(df)

2. 2次元リスト(リストのリスト)からDataFrameを作成する

このメソッドでは、いくつかの要素を含む Python の 2 次元リストを作成し、それを DataFrame() 関数に渡します。

さらに、この DataFrame() 関数は、渡された2次元リストのデータ要素から作られた pandas DataFrame オブジェクトを返します。

それでは、2次元リストから pandas DataFrame を生成する Python コードを見てみましょう。

# Import pandas module
import pandas as pd
 
# Create a Python list of tuples
list_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 tuples
df = pd.DataFrame(list_tp)
print(df)

結果は以下の通りです。

# Import pandas module
import pandas as pd
 
# Create a Python list of tuples
list_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() function
df = 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 module
import pandas as pd
 
# Create two Python lists
prog_lang = ['C++', 'Python', 'Matlab', 'Csharp']
file_extn = ['.cpp', '.py', '.mat', '.cs']
 
# Create a Python list of tuples
# using above lists and zip() function
list_tp = list(zip(prog_lang, file_extn))
 
# Create a DataFrame from lists using dictionary
df = pd.DataFrame(list_tp, columns = ['Language', 'Extension'])
print(df)

結果は以下の通りです。

DataFrame From 1-D List

方法2:from_records()関数の使用

この方法では、上記のPythonのコードで作成したのと同じように、Pythonのタプルの形でデータを含むリストを作成します。

そして、それを from_records() 関数に渡すと、タプルのリストのデータ要素から作られた Pandas DataFrame オブジェクトが返されます。

これを実装するための Python コードを書いてみましょう。

DataFrame From 2-D List

結果は以下の通りです。

DataFrame From List Of Tuples

方法3: list() と zip() 関数を使用する

この方法では、list()zip() 関数を用いて、データを Python のタプルの形で格納した Python リストを作成します。

zip()` 関数は、渡された両方のリストのデータ要素を圧縮して Python タプルのオブジェクトを作成します。

そして list() 関数は、Python の zip() 関数が返すイテレータオブジェクトから Python のタプルのリストを作成します。

そして、このタプルのリストを DataFrame() 関数に渡すだけで、タプルのリストのデータ要素から作られた Pandas DataFrame オブジェクトが返されます。

これを実装するための Python コードを見てみましょう。

DataFrame From List Of Tuples Using From Records

結果は以下の通りです。

DataFrame From List Of Tuples Using Zip

まとめ

この記事では、以下のことを学びました。

  • Python の DataFrame オブジェクトとリストとは?
  • 1次元からDataFrameを作成する方法
  • リストや2次元のリストからDataFrameを作成する方法
  • タプルのリストからDataFrameを作成するためのさまざまな方法
タイトルとURLをコピーしました