ウェブサイト検索

ラベル名またはインデックス位置によって DataFrame 内の列をドロップします


pandas データ フレームは、一連のエンティティで構成される 2D データ構造です。数学的データの分析に非常に役立ちます。データは表形式で配置され、各行がデータのインスタンスとして機能します。

Pandas データ フレームは、非常に強力なプログラミング資産となる多数の機能を備えているため、特別です。データ フレームの各列は、ラベルが付けられた一連の情報を表します。この記事では、これらの列を操作し、pandas データ フレームで列を削除するさまざまな方法について説明します。

単一または複数の列の削除は、列名を指定するか、そのインデックス値を使用して実行できます。これらの方法は両方とも理解できますが、まずデータセットを準備し、データ フレームを生成する必要があります。

データフレームの作成

データ フレームの作成中に、テーブルに列名と行名を割り当てることができます。この手順は「ラベル名 」と「インデックス値 」を指定するため重要です。

ここでは、パンダ ライブラリを「pd 」としてインポートし、リストの辞書を使用してデータセットを渡しました。各キーは列データを表し、それに関連付けられた値はリストの形式で渡されます。 pandas の「DataFrame() 」関数を使用してデータ フレームを作成しました。 「index 」パラメータを使用して行ラベルをデータ フレームに割り当てました。次に、列名を使用して列を削除しましょう。

import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)

出力

         Employee ID  Age  Salary              Role
Nimesh       CIR45   25  200000     Junior Developer
Arjun        CIR12   28  250000           Analyst
Mohan        CIR18   27  180000        Programmer
Ritesh       CIR50   26  300000     Senior Developer
Raghav       CIR28   25  280000                HR

列名と Drop() メソッドの使用

データ フレームを生成した後、「dataframe.drop 」メソッドを使用してデータから「Salary 」列と「Role 」列を削除しました。フレーム。これらの列名をリストで渡しました。

列軸を操作しているため、「axis 」の値を 1 に指定しました。最後に、この新しいデータ フレームを変数「colDrop 」に保存し、出力しました。

import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)
colDrop = dataframe.drop(["Role", "Salary"], axis=1)
print("After dropping the Role and salary column:")
print(colDrop)

出力

       Employee ID  Age  Salary              Role
Nimesh       CIR45   25  200000  Junior Developer
Arjun        CIR12   28  250000           Analyst
Mohan        CIR18   27  180000        Programmer
Ritesh       CIR50   26  300000  Senior Developer
Raghav       CIR28   25  280000                HR
After dropping the Role and salary column:
       Employee ID  Age
Nimesh       CIR45   25
Arjun        CIR12   28
Mohan        CIR18   27
Ritesh       CIR50   26
Raghav       CIR28   25

インデックス値と Drop() メソッドの使用

インデックスの位置を使用して、削除する列をロックできます。

ここでは、単に「dataframe.columns 」メソッドと「dataframe.drop() 」を使用して、削除する列のインデックス位置を指定しました。 「[[2,3]] 」引数を渡して、「Salary」列と「role」列を削除しました。

列を削除するための基本的な方法を両方説明したので、次にいくつかの拡張概念について説明します。

colDrop = dataframe.drop(dataframe.columns[[2, 3]], axis=1)
print("After dropping salary and role: -")
print(colDrop)

出力

After dropping salary and role: -
         Employee ID  Age
Nimesh       CIR45    25
Arjun        CIR12    28
Mohan        CIR18    27
Ritesh       CIR50    26
Raghav       CIR28    25

データ フレームから列の範囲を削除する

上で説明した例では、特定の列 (Salary&Role) のみを削除しましたが、ご存知のとおり、pandas はプログラマに多数の機能を提供するため、それを使用して削除する列の範囲を作成できます。このロジックを実装してみましょう。

iloc() 関数の使用

データ フレームを生成した後、「iloc() 関数 」を使用して列の範囲を選択し、データ フレームから削除しました。 「iloc() 」関数は、行と列の両方のインデックス範囲を受け取ります。行の範囲は「[0:0] 」に設定され、列の範囲は「[1:4] 」に設定されました。最後に、「dataframe.drop()」メソッドを使用してこれらの列を削除します。

import pandas as pd
dataset = {"Employee ID":["CIR45", "CIR12", "CIR18", "CIR50", "CIR28"], "Age":[25, 28, 27, 26, 25], "Salary":[200000, 250000, 180000, 300000, 280000], "Role":["Junior Developer", "Analyst", "Programmer", "Senior Developer", "HR"]}
dataframe = pd.DataFrame(dataset, index=["Nimesh", "Arjun", "Mohan", "Ritesh", "Raghav"])
print(dataframe)
colDrop = dataframe.drop(dataframe.iloc[0:0, 1:4],axis=1)
print("Dropping a range of columns from 'Age' to 'Role' using iloc() function")
print(colDrop)

出力

        Employee ID  Age  Salary              Role
Nimesh       CIR45   25  200000     Junior Developer
Arjun        CIR12   28  250000           Analyst
Mohan        CIR18   27  180000         Programmer
Ritesh       CIR50   26  300000    Senior Developer
Raghav       CIR28   25  280000                HR
Dropping a range of columns from 'Age' to 'Role' using iloc() function
         Employee ID
Nimesh       CIR45
Arjun        CIR12
Mohan        CIR18
Ritesh       CIR50
Raghav       CIR28

loc() 関数の使用

範囲の作成にインデックスの代わりにラベルを使用したい場合は、「loc() 関数 」を使用します。

loc() 」関数を使用して範囲を作成しました。 iloc() とは異なり、最後の列が含まれます。 「loc() 」関数は、列名を引数として取得して列を選択します。最後に、残りの列を含む新しいデータ フレームを出力しました。

colDrop = dataframe.drop(dataframe.loc[:, "Age": "Role"].columns, axis=1)
print("Dropping a range of columns from Age to Role using loc() fucntion")
print(colDrop)

出力

       Employee ID  Age  Salary              Role
Nimesh       CIR45   25  200000  Junior Developer
Arjun        CIR12   28  250000           Analyst
Mohan        CIR18   27  180000        Programmer
Ritesh       CIR50   26  300000  Senior Developer
Raghav       CIR28   25  280000                HR
Dropping a range of columns from Age to Role using loc() fucntion
       Employee ID
Nimesh       CIR45
Arjun        CIR12
Mohan        CIR18
Ritesh       CIR50
Raghav       CIR28

結論

この記事では、pandas データ フレームから列を削除する単純な操作に焦点を当てます。 「ラベル名によるドロップ」と「インデックス値によるドロップ」という 2 つの手法について説明しました。また、「loc() 」および「iloc() 」関数も使用し、pandas データ フレームでのアプリケーションを確認しました。

関連記事: