Pandas DataFrameで列を削除する方法
Published on
データサイエンティストとして、DataFrameでのデータ操作は最も一般的な作業の1つです。データ処理ワークフローで頻繁に発生するタスクの1つは、分析に必要ない列を削除することです。このチュートリアルでは、Pandas DataFrameで列を削除する方法について説明します。列名、インデックス、および複数の列に基づく列の削除の異なる方法をカバーします。
Python Pandas Dataframeからコードなしでデータ可視化を簡単に作成したい場合は?
PyGWalkerはデータ可視化のためのPythonライブラリで、Exploratory Data AnalysisとVisualizationに使用できます。 PyGWalker (opens in a new tab)は、pandas dataframe(およびpolars dataframe)をTableauスタイルのユーザーインターフェイスに変換して、視覚的な探索のための簡略化されたJupyter Notebookデータ分析とデータ可視化ワークフローを提供できます。
Pandas DataFrameの概要
列と行を持つ2次元のテーブル様のデータ構造であるDataFrame。Dataframeの各列はSeriesであり、Seriesは1次元のデータ構造で、ラベルであるインデックスを伴う値の配列を保持します。また、DataFrameは行と列のインデックスを持つため、迅速かつ効率的なデータアクセスが可能です。Pandas DataFrameはPythonでデータの操作やデータの変換、データクリーニング、データ可視化などの複雑なデータ分析を実行するための強力なツールです。
Pandas DataFrameでの列の削除
Pandas DataFrameで列を削除するプロセスを始めましょう。要件に応じて、DataFrameから列を削除する方法はいくつかあります。以下でいくつかの人気のある方法を紹介します。
drop
メソッドを使った列の削除
DataFrameから列を削除する最も簡単な方法は、 drop
メソッドを使用することです。 axis = 1
というパラメータを持つ drop
メソッドを使用して、列を削除することを示します。
# create a sample DataFrame
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# drop the column 'city'
df = df.drop('city', axis=1)
print(df.head())
Output:
name age
0 Alex 20
1 Bob 25
2 Clarke 19
3 David 18
上記の例では、3つの列 "name"、"age"、"city" を含むサンプルDataFrameを作成しました。 drop
メソッドをaxis = 1
というパラメータとともに使用して、列 "city"を削除しました。その後、更新されたDataFrame "name"と"age"の2つの列のみのものを出力しました。
サブセットを使用した列の削除
DataFrameから列を削除する別の方法は、 []
サブセット化のメソッドを使用して、 del
文を使用することです。 del
文は、DataFrameオブジェクトから直接列を削除します。
# create a sample DataFrame
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# remove the column 'city'
del df['city']
print(df.head())
Output:
name age
0 Alex 20
1 Bob 25
2 Clarke 19
3 David 18
上記の例では、3つの列 "name"、"age"、"city" を含むサンプルDataFrameを作成しました。サブセット化のメソッド[]
と del
文を使用して、列 "city"を削除しました。その後、更新されたDataFrame "name"と"age"の2つの列のみのものを出力しました。### 複数のカラムを削除する
DataFrame から複数のカラムを削除する必要があることがあります。複数のカラムを削除するには、drop
メソッドをリスト形式で使用し、カラム名を指定します。
# サンプル DataFrame を作成する
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo'], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# 'city' と 'occupation' のカラムを削除する
df = df.drop(['city', 'occupation'], axis=1)
print(df.head())
出力結果:
name age
0 Alex 20
1 Bob 25
2 Clarke 19
3 David 18
上記の例では、name
、age
、city
、occupation
の 4 つのカラムを持つサンプル DataFrame を作成し、drop
メソッドをリスト形式で city
と occupation
のカラムを削除しました。その後、name
と age
の 2 つのカラムしかない更新された DataFrame を出力しました。
カラムインデックスを使用してカラムを削除する
DataFrame からカラムを削除するには、列のインデックスを使用することもできます。これを行うには、drop
メソッドに columns
パラメーターを使用して、削除するカラムのインデックスを指定します。
# サンプル DataFrame を作成する
import pandas as pd
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': ['New York', 'Paris', 'London', 'Tokyo']}
df = pd.DataFrame(data)
# インデックスが 2 のカラム、つまり 'city' を削除する
df = df.drop(df.columns[2], axis=1)
print(df.head())
出力結果:
name age
0 Alex 20
1 Bob 25
2 Clarke 19
3 David 18
上記の例では、name
、age
、city
の 3 つのカラムを含むサンプル DataFrame を作成しました。drop
メソッドに columns
パラメーターを使用して、インデックスが 2
の city
のカラムを削除しました。その後、name
と age
の 2 つのカラムしかない更新された DataFrame を出力しました。
条件に基づいたカラムの削除
条件に基づいて drop
メソッドを使用してカラムを削除することもできます。たとえば、すべての値が NaN
の列を削除することができます。
# 全て NaN 値を持つ列を持つサンプル DataFrame を作成する
import pandas as pd
import numpy as np
data = {'name': ['Alex', 'Bob', 'Clarke', 'David'], 'age': [20, 25, 19, 18],'city': [np.nan, np.nan, np.nan, np.nan], 'occupation': ['Engineer', 'Doctor', 'Artist', 'Lawyer']}
df = pd.DataFrame(data)
# 全て NaN 値を持つ列を削除する
df = df.dropna(how='all', axis=1)
print(df.head())
出力結果:
name age occupation
0 Alex 20 Engineer
1 Bob 25 Doctor
2 Clarke 19 Artist
3 David 18 Lawyer
上記の例では、name
、age
、city
、occupation
の 4 つのカラムを持つサンプル DataFrame を作成し、city
の値を NaN
に設定しました。dropna
メソッドに how='all'
と axis=1
のパラメーターを使用して、すべての NaN
値を持つ列を削除しました。その後、name
、age
、occupation
の 3 つのカラムしかない更新された DataFrame を出力しました。
結論
Pandas DataFrame からカラムを削除することは、データサイエンティストとしてマスターする必要がある基本操作です。本書では、カラム名、インデックス、複数のカラムを基にした削除の異なる方法をカバーしました。DataFrame の作業効率を最適化し、データ操作を改善するために、本チュートリアルが役立つことを願っています。
よくある質問
-
PythonのDataFrameで列を削除する方法は?
PythonのDataFrameで列を削除するには、
drop()
メソッドを使用し、axis
パラメータを1と設定した上で、列名を指定します。これにより、指定した列がDataFrameから削除されます。また、列をその場で削除するには、del
キーワードの後に列名を指定することもできます。 -
PythonのDataFrameで複数の列を同時に削除することはできますか?
はい、PythonのDataFrameでは複数の列を同時に削除することができます。
drop()
メソッドに列名のリストを渡すか、drop()
メソッドを複数回使用して異なる列名を指定することができます。これにより、指定したすべての列がDataFrameから削除されます。 -
PythonのDataFrameで特定の条件に基づいて列を削除することは可能ですか?
はい、PythonのDataFrameでは特定の条件に基づいて列を削除することが可能です。ブールインデックスや
loc
インデクサを使用して、条件を満たす列を選択し、その列をDataFrameから削除するためにdrop()
メソッドを使用することができます。これにより、特定の基準に基づいて列を選択的に削除することができます。