Python Pandas:リストをデータフレームに変換する方法

この記事では、単一または複数のリストをDataFrameに変換する方法について説明します。

Pandasは、DataFrameのコンストラクターを提供し、オブジェクトを渡すことでDataframeを作成します。

pandas.DataFrame(data=None, index=None, columns=None, dtype=None, copy=False)

ここで、データパラメータはnumpy ndarray、dict、または他のDataFrameです。また、列とインデックス  は列とインデックスのラベル用です。

これを使用して、リストをリストからデータフレームオブジェクトに変換します。

リストのリストからDataFrameを作成する

リストのリスト、すなわち

# List of lists
students = [ ['jack', 34, 'Sydeny'] ,
             ['Riti', 30, 'Delhi' ] ,
             ['Aadi', 16, 'New York'] ]

このリストをDataFrameのコンストラクターに渡して、データフレームオブジェクトを作成します。

# Creating a dataframe object from listoftuples
dfObj = pd.DataFrame(students)

作成されたDataFrameの内容は次のとおりです。

      0   1         2
0  jack  34    Sydeny
1  Riti  30     Delhi
2  Aadi  16  New York

タプルのリストからDataFrameを作成します

リストのリストと同じように、データフレーム作成者にタプルのリストを渡して、データフレームを作成できます。タプルのリストがあるとします。

# List of Tuples
students = [ ('jack', 34, 'Sydeny') ,
             ('Riti', 30, 'Delhi' ) ,
             ('Aadi', 16, 'New York') ]

このタプルのリストをDataFrameのコンストラクターに渡して、DataFrameオブジェクトを作成します。

# Creating a dataframe object from listoftuples
dfObj = pd.DataFrame(students)

作成されたデータフレームの内容は次のとおりです。

      0   1         2
0  jack  34    Sydeny
1  Riti  30     Delhi
2  Aadi  16  New York

列とインデックスの両方のラベルがデフォルトです。しかし、それらを提供することもできます。

リストからデータフレームを作成し、列名とインデックスを設定

#Convert list of tuples to dataframe and set column names and indexes
dfObj = pd.DataFrame(students, columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])

作成されたデータフレームの内容は次のとおりです。

   Name  Age      City
a  jack   34    Sydeny
b  Riti   30     Delhi
c  Aadi   16  New York

タプルのリストからデータフレームを作成し、特定の列をスキップします

タプルのリストには、各タプルに3つのエントリがあります。1番目と3番目のエントリのみを使用する場合はどうなりますか?

タプルの2番目のエントリをスキップしてデータフレームを作成しましょう。

# Create datafrae from student list but skip column 'Age' i.e. only with 2 columns
dfObj = pd.DataFrame.from_records(students, exclude=['Age'], columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])

作成されたデータフレームの内容は次のとおりです。

   Name      City
a  jack    Sydeny
b  Riti     Delhi
c  Aadi  New York

複数のリストからデータフレームを作成する

たとえば、3つの異なるリストがあるとします。

listOfNames =  ['jack', 'Riti', 'Aadi']
listOfAge   =  [34, 30, 16]
listOfCity  =  ['Sydney', 'Delhi', 'New york']

次に、各リストを列としてデータフレームに変換します。それを行う方法を見てみましょう。

リストを圧縮してタプルのリストを作成します。

# Create a zipped list of tuples from above lists
zippedList =  list(zip(listOfNames, listOfAge, listOfCity))

ziipledListsの内容は、

[('jack', 34, 'Sydney'), ('Riti', 30, 'Delhi'), ('Aadi', 16, 'New york')]

このzipされたリストでデータフレームを作成しましょう。

# Create a dataframe from zipped list
dfObj = pd.DataFrame(zippedList, columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])

作成されたデータフレームの内容は次のとおりです。

   Name  Age      City
a  jack   34    Sydney
b  Riti   30     Delhi
c  Aadi   16  New york

完全な例は次のとおりです。

import pandas as pd
def main():
    
    # List of lists
    students = [ ['jack', 34, 'Sydeny'] ,
                 ['Riti', 30, 'Delhi' ] ,
                 ['Aadi', 16, 'New York'] ]
    
    print("****Create a Dataframe from list of lists *****")
    
    # Creating a dataframe object from listoftuples
    dfObj = pd.DataFrame(students)
    
    print("Dataframe : " , dfObj, sep='\n')
    
    # List of Tuples
    students = [ ('jack', 34, 'Sydeny') ,
                 ('Riti', 30, 'Delhi' ) ,
                 ('Aadi', 16, 'New York') ]
    
    print("****Create a Dataframe from list of tuple *****")
    
    # Creating a dataframe object from listoftuples
    dfObj = pd.DataFrame(students)
    
    print("Dataframe : " , dfObj, sep='\n')
    
    
    print("****Create a Dataframe from list of tuple, also set column names and indexes *****")
    
    #Convert list of tuples to dataframe and set column names and indexes
    dfObj = pd.DataFrame(students, columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])
    
    print("Dataframe : " , dfObj, sep='\n')
    
    print("****Create dataframe from list of tuples and skip certain columns*********")
    
    # Create datafrae from student list but skip column 'Age' i.e. only with 2 columns
    dfObj = pd.DataFrame.from_records(students, exclude=['Age'], columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])
    
    print("Dataframe : " , dfObj, sep='\n')
    
    print("***Create dataframe from multiple lists***")
    
    listOfNames =  ['jack', 'Riti', 'Aadi']
    listOfAge   =  [34, 30, 16]
    listOfCity  =  ['Sydney', 'Delhi', 'New york']
    
    # Create a zipped list of tuples from above lists
    zippedList =  list(zip(listOfNames, listOfAge, listOfCity))
    
    print("zippedList = " , zippedList)
    
    # Create a dataframe from zipped list
    dfObj = pd.DataFrame(zippedList, columns = ['Name' , 'Age', 'City'], index=['a', 'b', 'c'])
    print("Dataframe : " , dfObj, sep='\n')
    
if __name__ == '__main__':
    main()

出力:

****Create a Dataframe from list of lists *****
Dataframe :
      0   1         2
0  jack  34    Sydeny
1  Riti  30     Delhi
2  Aadi  16  New York
****Create a Dataframe from list of tuple *****
Dataframe :
      0   1         2
0  jack  34    Sydeny
1  Riti  30     Delhi
2  Aadi  16  New York
****Create a Dataframe from list of tuple, also set column names and indexes *****
Dataframe :
   Name  Age      City
a  jack   34    Sydeny
b  Riti   30     Delhi
c  Aadi   16  New York
****Create dataframe from list of tuples and skip certain columns*********
Dataframe :
   Name      City
a  jack    Sydeny
b  Riti     Delhi
c  Aadi  New York
***Create dataframe from multiple lists***
zippedList =  [('jack', 34, 'Sydney'), ('Riti', 30, 'Delhi'), ('Aadi', 16, 'New york')]
Dataframe :
   Name  Age      City
a  jack   34    Sydney
b  Riti   30     Delhi
c  Aadi   16  New york

コメントを残す

メールアドレスが公開されることはありません。

Next Post

Stadiaに多くの要望が寄せられた機能が追加

水 3月 4 , 2020
Stadiaコントローラーには「キャプチャ」ボタンがありますが、これまでプレイヤーは自分が撮ったスクリーンショットやビデオを共有することができませんでした。