こんにちは、ギークです。
この記事では、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)
|
この記事もチェック:Pythonのsample関数を使ってリストからランダムに要素を抽出する方法
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)
|
結果は以下の通りです。
方法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を作成するためのさまざまな方法