Pythonで特定のデータ型の列を選択する方法【pandas select_dtypes()】
pandasのDataFrameから特定のデータ型(dtype)を持つ列だけを取り出したい場合は、select_dtypes()メソッドが便利です。引数includeに取得したいデータ型を指定すると、該当する列だけを簡単に抽出できます。
サンプルDataFrameの作成
まずは、文字列型(object)の「Student」列と整数型(int64)の「Roll Number」列を持つ、2列のDataFrameを作成します。
import pandas as pd
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
"Roll Number": [5, 10, 3, 8, 2, 9, 6]
}
)
select_dtypes()で特定のデータ型の列を選択する
includeパラメータにデータ型のリストを渡すことで、指定した型の列のみを選択できます。ここでは、object型の列とint64型の列をそれぞれ別の変数に格納します。
# object型(文字列)の列を選択
column1 = dataFrame.select_dtypes(include=['object']).columns
# int64型(整数)の列を選択
column2 = dataFrame.select_dtypes(include=['int64']).columns
完全なコード例
以下に、ここまでの処理をまとめた実行可能なコード全体を示します。
import pandas as pd
# DataFrameを作成
dataFrame = pd.DataFrame(
{
"Student": ['Jack', 'Robin', 'Ted', 'Marc', 'Scarlett', 'Kat', 'John'],
"Roll Number": [5, 10, 3, 8, 2, 9, 6]
}
)
print("DataFrame:\n", dataFrame)
# DataFrame全体の情報を表示
print("\nDataFrame全体の情報:")
print(dataFrame.info())
# 特定のデータ型の列を選択
column1 = dataFrame.select_dtypes(include=['object']).columns
column2 = dataFrame.select_dtypes(include=['int64']).columns
print("object型の列 =", column1)
print("int64型の列 =", column2)
実行結果
このコードを実行すると、次のような出力が得られます。
DataFrame: Roll Number Student 0 5 Jack 1 10 Robin 2 3 Ted 3 8 Marc 4 2 Scarlett 5 9 Kat 6 6 John DataFrame全体の情報: <class 'pandas.core.frame.DataFrame'> RangeIndex: 7 entries, 0 to 6 Data columns (total 2 columns): # Column Non-Null Count Dtype --- ------ -------------- ----- 0 Student 7 non-null object 1 Roll Number 7 non-null int64 dtypes: int64(1), object(1) memory usage: 240.0+ bytes None object型の列 = Index(['Student'], dtype='object') int64型の列 = Index(['Roll Number'], dtype='object')
補足:excludeパラメータとの併用
select_dtypes()には、指定したデータ型を除外するためのexcludeパラメータも用意されています。たとえば次のように書くと、数値型以外の列(この場合はobject型)だけを取得できます。
# 数値型を除外した列を選択
non_numeric_cols = dataFrame.select_dtypes(exclude=['number']).columns
print(non_numeric_cols) # Index(['Student'], dtype='object')
また、include=['number']と指定すれば、int64やfloat64などすべての数値型の列をまとめて選択できます。欠損値の補完やスケーリングなどの前処理では、数値列と文字列列を分けて扱う場面が多いため、select_dtypes()は覚えておくと非常に便利なメソッドです。
-
Python・PandasのDataFrameから複数の列を選択する方法
Pandasでは、CSVファイルから読み込んだDataFrameに対して、二重の角括弧 [[ ]] を使うことで、複数の列を簡単に選択できます。本記事では、具体的な手順とサンプルコードを交えて解説します。 前提:サンプルデータについて ここでは、Microsoft Excelで開いた以下のような内容のCSVファイル(SalesData.csv)を例にします。このデータには「Car(車名)」「Reg_Price(登録価格)」「Units(台数)」の3つの列が含まれています。 ステップ1:CSVファイルをPandas DataFrameに読み込む まず、read_csv() メソッドを使って、C
-
PythonでCSVファイルから特定の列を抽出する方法(Pandas活用)
PythonでCSVファイルから特定の列だけを抽出してリストとして扱いたい場合、Pandasのread_csv()メソッドを使うと簡単に実現できます。usecols引数に列名のリストを指定することで、必要な列のみを効率的に読み込むことが可能です。 手順 抽出したい列名をリストとして作成します。 read_csv()メソッドを使って、CSVファイルをデータフレーム(DataFrame)として読み込みます。 抽出したデータを表示します。 plot()メソッドを使ってデータフレームをグラフ化します。 図を表示するためにshow()メソッドを呼び出します。 コード例 import pandas a