ラベル名またはインデックス位置によって 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 データ フレームでのアプリケーションを確認しました。